Java项目生成唯一有序的编号-使用redis
2020-07-13 05:02
141 查看
项目中有种场景需要生成唯一、有序、自增编号,因为项目是分布式部署,这使得编号的生成有点麻烦。最后在同事的建议下使用Redis的Incrby方法来简洁有效的解决这种问题。
public String generateProtocolNo(String districtCode) { try { String year = String.valueOf(Calendar.getInstance().get(Calendar.YEAR)); Long count = jedisClientUtil.hincrBy(RedisKeyGenerator.getProtocolNoSuffix(year), districtCode, 1); return districtCode + "-" + year + "-" + String.format("%03d", count); } catch (Exception ex) { log.error("fail.in.genProjectNo,cause:{}", Throwables.getStackTraceAsString(ex)); String protocolNo = String.format("%s-%s-%s", districtCode, new SimpleDateFormat("yyyy").format(new Date()), System.currentTimeMillis()); return protocolNo; } }
- Redis Incrby 命令用于为哈希表中的字段值加上指定增量值。增量值可以为负数;相当于对指定字段进行减法操作。
具体详情参见文档
相关文章推荐
- Java项目 使用MyEclipse打包生成jar文件方法
- windows下使用maven-3.3.9编译java项目生成jar
- Java项目中使用Freemarker生成Word文档
- 工银e生活开发脱坑日志(9)JAVA版的SDK自动生成msgId,PHP如何生成消息通讯唯一编号msgId
- 【java项目实践】在eclipse中使用利用mybatis-generator自动生成Model、Dao、mapping代码
- redis在java项目中的使用
- java------redis项目中使用以及相关文件的配置
- Java Maven项目使用CXF插件生成WebService代理
- IDEA使用maven搭建java项目连接redis(图文)
- 使用redis生成全局唯一id
- maven项目中使用redis集群报错: java.lang.NumberFormatException: For input string: "7006@17006"
- 订单号(或唯一编号)生成方法-_-[商城使用]
- java 使用UUID生成19随机单号 纯数字,数字+字母唯一不重复单号
- cocos2d-x 使用JniHelper 调用 java代码 获取安卓生成的唯一标示UUID
- Java项目怎么使用Swagger生成API文档?
- Java Web项目中使用Freemarker生成Word文档
- 在使用Mybatis框架的JavaWeb项目中通过Mybatis Generator逆向工程自动生成Java类文件
- javaWEB项目中使用XSLT解析生成的XML文件
- 【修真院java小课堂】如何使用公司框架生成代码搭建项目
- 使用Ant自动化我们的java项目生成