public String getId() {String key = "finance:funs:code";Long incr = getIncr(key);if (incr == 0) {incr = getIncr(key);//从0001开始}DecimalFormat df = new DecimalFormat("0000");//四位序列号String format = df.format(incr);return format;}public Long getIncr(String key) {RedisAtomicLong entityIdCounter = new RedisAtomicLong(key, redisTemplate.getConnectionFactory());Long increment = entityIdCounter.getAndIncrement();Long expiresTime = getSecondsNextEarlyMorning();redisTemplate.opsForValue().set(key, "pay", expiresTime, TimeUnit.SECONDS);return increment;}/*** 判断当前时间距离第二天凌晨的秒数** @return 返回值单位为[s:秒]*/public Long getSecondsNextEarlyMorning() {Calendar cal = Calendar.getInstance();cal.add(Calendar.DAY_OF_YEAR, 1);cal.set(Calendar.HOUR_OF_DAY, 0);cal.set(Calendar.SECOND, 0);cal.set(Calendar.MINUTE, 0);cal.set(Calendar.MILLISECOND, 0);return (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000;}

key自己替换

redisTemplate.opsForValue().set(key, "pay", expiresTime, TimeUnit.SECONDS);中的pay自定义

redisTemplate设置key零点过期,生成自增的单号相关推荐

  1. Redis源码分析:过期key删除与设置key的过期时间

    Redis中设置key过期时间与过期key的处理流程 在Redis中,可以再设置值的时候就设置该Key的过期时间,也可以通过在expire命令来设置某个key值的过期时间,并且在了解完设置过期时间之后 ...

  2. 使用RedisTemplate 设置key有前缀 \xAC\xED\x00\x05t\x00\x04 value有前缀 \xAC\xED\x00\x05t\x00\x08 问题解决

    RedisTemplate<String, Object> redisTemplate; 需要自定义一下 不然 有可能序列化方式不对 导致这样的问题 @Configuration publ ...

  3. 如何通过redisTemplate获得key的过期时间

    /** 从redis中获取key对应的过期时间; 如果该值有过期时间,就返回相应的过期时间; 如果该值没有设置过期时间,就返回-1; 如果没有该值,就返回-2; */ public Long getE ...

  4. redisTemplate获得key的过期时间方法

    /** * 从redis中获取key对应的过期时间; * 如果该值有过期时间,就返回相应的过期时间; * 如果该值没有设置过期时间,就返回-1; * 如果没有该值,就返回-2; */ redisTem ...

  5. vue前端自动生成编号或者订单单号(日期+随机数)

    created () {// 调用获取当前日期的方法加四位随机数 赋值表单中的项目编号this.form.number = this.getProjectNum() + Math.floor(Math ...

  6. Redis Expire 设置key过期时间

    Expire Redis Expire 命令用于设置 key 的过期时间.key 过期后将不再可用. 用法:Expire key 127.0.0.1:6379 [8] > set keyname ...

  7. redis设置key的有效期

    Key命令 设置key的过期时间. 查询当前所有的key expire key second:设置key的过期时间 若执行ttl key 显示为-2 则说明改值不存在缓存中 显示为-1则是持久化的 ( ...

  8. java redis expire 1_redis 下key的过期时间详解 :expire

    Redis是一个开源的Key-Value数据缓存,和Memcached类似. Redis多种类型的value,包括string(字符串).list(链表).set(集合).zset(sorted se ...

  9. 高可用高性能可扩展的单号生成方案

    作者:赵玉开,十年以上互联网研发经验,2013年加入京东,在运营研发部任架构师,期间先后主持了物流系统自动化运维平台.青龙数据监控系统和物流开放平台的研发工作,具有丰富的物流系统业务和架构经验.在此之 ...

最新文章

  1. eclipse链接mysql数据池配置_Tomcat+mysql+eclipse数据库连接池配置
  2. centos7安装单节点mysql(源码包安装)
  3. 如何使用计算机中的导出,如何将iPhone手机中的音乐导出至电脑
  4. PyTorch 1.0 中文官方教程:使用PyTorch进行深度学习
  5. k8s高可用集群_搭建高可用集群(初始化和部署keepalived)---K8S_Google工作笔记0055
  6. commit分拆多个 git_Git操作:在多个分支之间,使用git am打patch和同步分支
  7. CAP、BASE、ACID基本概念
  8. 历届二级c语言pdf,国家计算机二级C语言历年真题与答案.pdf
  9. matlab二维函数的傅立叶变换,二维傅里叶变换和滤波(Two
  10. vue 如何打开接口返回的HTML文件
  11. 三亚自由行游记,探秘这座美丽小岛
  12. 使用vot-toolkit-python测试VOT2020
  13. 软件测试面试题:一个输入手机号获取验证码的页面,说出测试过程
  14. 基于时频域统计特征提取的自然环境声音识别方法
  15. Edge 浏览器 URLSearchParams bug 修复
  16. VGA RGBHV 时序图
  17. Unity 代码实现形成圆形及形成球形
  18. 【AD20学习笔记】PCB设计规则设置及手工布线
  19. 天地图 android studio,AndroidStudio 加载 天地图 (2019年后开发授权申请)
  20. 数据共享之相互排斥量mutex

热门文章

  1. 【COCOS CREATOR 系列教程之二】脚本开发篇事件监听、常用函数等示例整合
  2. java web 程序---javabean实例--登陆界面并显示用户名和密码
  3. 最清晰细致的教程!一步步教你打造Win7+CentOS双系统
  4. 在win7环境下使用网络无线共享把电脑变成一台无线路由器
  5. Maven项目编译工具的使用
  6. 深圳SQL数据库823报错修复
  7. linux系统编程练手项目,精选 22 个 C++ 项目,编程小白练手首选!
  8. 手机音频通道被占用_关于凯叔讲故事APP的音频导出下载
  9. 图像极坐标变换及在OCR中的应用
  10. python制作自动回复脚本_python itchat实现微信自动回复的示例代码