Redis串行生成顺序编码的方法怎么实现
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇" Redis串行生成顺序编码的方法怎么实现"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来
千家信息网最后更新 2025年01月24日Redis串行生成顺序编码的方法怎么实现
这篇" Redis串行生成顺序编码的方法怎么实现"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇" Redis串行生成顺序编码的方法怎么实现"文章吧。
场景:针对于分布式并发环境,易出现编码生成重复问题
方案特点:串行操作可避免阻塞加锁,处理效率更高
具体解决方案
private final static String ENTERPRISE_CODE = "enterpriseCode";@Resourceprivate RedisTemplate redisTemplate;private String generateCode() { String code; if (!redisTemplate.hasKey(ENTERPRISE_CODE)) { // Mybatis-Plus 查询数据库中企业编码最大值 EnterprisePO enterprise = enterpriseService.getOne( Wrappers.lambdaQuery() .orderByDesc(EnterprisePO::getCode) .last("limit 1")); // 缓存企业编码 if (ObjectUtils.isNotEmpty(enterprise)) { // 如果 key 不存在才 set 避免并发重复 set,setIfAbsent() 属于原子操作 redisTemplate.opsForValue().setIfAbsent(ENTERPRISE_CODE, Long.valueOf(enterprise.getCode())); // 也可设置 key 过期时间,此处设置为 1 天 // redisTemplate.opsForValue().setIfAbsent(ENTERPRISE_CODE, Long.valueOf(enterprise.getCode()), 1, TimeUnit.DAYS); } } // 以递增方式缓存最新编码 Long number = redisTemplate.opsForValue().increment(ENTERPRISE_CODE, 1L); // d 意为保留 6 位数,不足六位数字前面补 0 code = String.format("d", number); return code;}
以上就是关于" Redis串行生成顺序编码的方法怎么实现"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
编码
内容
生成
方法
顺序
企业
文章
方案
知识
篇文章
缓存
最大
价值
位数
分布式
原子
场景
大部分
就是
意为
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
闽盾杯网络安全大赛是干嘛的
数据库pw解决方案
abap 数据库表
山西智能软件开发承诺守信
服务器缺少raid驱动无法安装
计算机网络技术信息农业发展
网络安全手抄报3年级
战队赛是本区还是全服务器
哈尔滨网络安全宣传周吉祥物
著名的数据库管理系统软件
如何在同一个服务器
r语言数据库
汤姆猫的软件开发商
游戏如何让服务器共享
共同维护网络安全抖音视频
宏基因组 比对数据库
免费的mtproxy代理服务器
末日3破解服务器第二个
关于青少年注意网络安全的话
成都客户软件开发
山西省网络安全感
强化信息网络安全工作
成都游戏软件开发公司电话
天津市兆龙软件开发公司
镇江软件开发公司挣钱吗
的数据库技术
游戏如何让服务器共享
江西省中小学生网络安全答题
福州国产化服务器
向日葵远控与网络安全保密