/**
 * 生成任务时,任务编号的规则是“XJRW-”+nowday(格式yyyyMMdd)+“-”+(当天生成任务数量+1)左补零4位
 * 
 * @author hlliut 2021年10月12日
 */
public class TaskNumberUtil {

private static String _KEY = "XJRW-";

public static String generateTaskNumber() {
        String key = _KEY + DateUtil.dateToString(new Date(), DateUtil.ISO_DATE_FORMAT);
        long value = getNumber(key);
        return String.format("%s-%s", key, String.format("%04d", value));
    }

private static long getNumber(String key) {
        if (!RedisUtils.hasKey(key)) {
            RedisUtils.setIfAbsent(key, 0, 25, TimeUnit.HOURS);// 25小时过期
        }
        long value = RedisUtils.incr(key);// 自增
        if (value > 9999) {
            RedisUtils.set(key, 0);
            return getNumber(key);// 重新计数
        }
        return value;
    }
}

java利用redis的setIfAbsent和incr,实现自增,限制总数相关推荐

  1. java利用redis实现排行榜_Java简单使用redis-zset实现排行榜

    简单使用redis-zset实现排行榜 此方法实现一个根据某字段的查询次数进行排行,查询的次数越多排行越前(从大到小排序),适用于初学者 1.添加依赖 org.springframework.boot ...

  2. java 利用redis 记录文章的阅读量

    最近接到一个需求,需要记录阅读过文章的数量.6 package org.java.redis_count;import org.springframework.beans.factory.annota ...

  3. java利用redis实现排行榜_Redis实现排行榜

    ZSet有序集合 redis的有序集合与集合一样也是String类型元素的集合,不允许有重复的元素. 每一个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的 ...

  4. Java利用Redis实现短信验证码功能

    本文将详情介绍从Redis+阿里云注册短信服务到后端调用等过程. 这个功能比较实用的地方就是注册用户的时候,防止一个用户多个账户注册,因为手机号毕竟有限 短信服务 首先,打开你的阿里云 话不多说,第一 ...

  5. c#获取对象的唯一标识_在 Java 中利用 redis 实现分布式全局唯一标识服务

    作者: 杨高超 juejin.im/post/5a4984265188252b145b643e 获取全局唯一标识的方法介绍 在一个IT系统中,获取一个对象的唯一标识符是一个普遍的需求.在以前的单体应用 ...

  6. 小王,在 Java 中如何利用 redis 实现一个分布式锁服务呢???

    作者:杨高超 juejin.im/post/5a4984af6fb9a0450b66bc57 在现代的编程语言中,接触过多线程编程的程序员多多少少对锁有一定的了解.简单的说,多线程中的锁就是在多线程环 ...

  7. 利用Redis原子计数器incr实现计数器及接口限流

    一.INCR命令介绍 Redis Incr 命令将 key 中储存的数字值增一. 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作.且将key的有效时间设置为长 ...

  8. 如何利用redis实现秒杀系统

    文章目录 题记 利用Watch实现Redis乐观锁 题记 在线思维导图总结:redis大纲 利用Watch实现Redis乐观锁 乐观锁基于CAS(Compare And Swap)思想(比较并替换), ...

  9. 【Redis笔记】一起学习Redis | 如何利用Redis实现一个分布式锁?

    一起学习Redis | 如何利用Redis实现一个分布式锁? 前提知识 什么是分布式锁? 为什么需要分布式锁? 分布式锁的5要素和三种实现方式 实现分布式锁 思考思考 基础方案 改进方案 保证setn ...

最新文章

  1. TCP断开连接为什么是4次挥手?
  2. 如何通过日期属性对数组进行排序
  3. css圆角矩形及去掉空格属性
  4. 【Linux】一步一步学Linux——fgrep命令(了解)(51)
  5. js实际工作中的技能点
  6. java token redis生成算法_Redis实现单点登录
  7. linux zfs功能,linux – 有没有办法一次设置多个ZFS文件系统属性?
  8. python图片横向合并_python3 图片横向合并
  9. 《统计学习方法》读书笔记——K近邻法(原理+代码实现)
  10. android 相机功能修改,安卓用户又少了一项自由,Android 11不再支持更改默认相机程序...
  11. Jquery和JS获取ul中li标签
  12. ThreadLocal对象使用过程中容易陷入的坑
  13. 安装KETTLE教程,并配置执行定时任务
  14. 进销存软件网络版连接不上,如何设置IP地址
  15. 超自动化如何提升保险业?
  16. php解析psd文件,PSD解析工具实现(二)
  17. 编写宠物dog类python_Python编程:创建和使用类
  18. pad 锁定屏幕显示方向为竖屏正方向
  19. 国内cn域名过期失效日期计算方式
  20. tpc ds mysql_TPC-DS 数据仓库查询性能测试

热门文章

  1. 如何发好外贸邮件,看亚马逊SES邮件服务商怎么说?
  2. 2013硕士毕业生薪资待遇
  3. [王鼎杰] 法国为什么是五常之一
  4. 淘宝客如何通过闲鱼引流?如何抓住用户眼球实现精准引流?
  5. 编程中等于号的不同含义
  6. pta6-1 快速排序
  7. 最新Axure RP 9.0.0.3675 授权码 license
  8. autoconf 报错
  9. 异构数据源之间交换数据的工具
  10. 送20本豆瓣高分技术图书!