Redis串行生成顺序编码的方法怎么实现
发表于:2024-11-15 作者:千家信息网编辑
千家信息网最后更新 2024年11月15日,这篇" Redis串行生成顺序编码的方法怎么实现"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来
千家信息网最后更新 2024年11月15日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安全错误
数据库的锁怎样保障安全
酒店网络安全保密协议书
竹溪专业软件开发口碑推荐
工程软件开发需要电脑吗
个人信息网络安全管理规定
aix服务器上出现乱码
网络安全是绝对的对吗
数据库设计概念设计
数据库系统基础和sql
三级网络技术上机软件
博雅数据库湖南高校录取分数线
服务器单cpu 内存插法
狼人杀网络技术教程
试题题库软件开发
数据库冗余后更新的问题
ctf广西网络安全大赛
免数据库短连接
特殊时期网络安全保障方案
大搜索app软件开发公司
桌面软件开发 数据库查询
网络安全论文4页
计算机网络技术曼彻斯特编码
数据库中日期转换数字
服务器资源包
内蒙古电信大数据库
浪潮存储服务器维护
云服务器管理控制台镜像
女性学网络技术专业
杭州专业的软件开发方法
免费版邮件服务器
信息事业部网络安全