设计思路-订单号生成规则
订单号都是都是规则都是{抬头}{YYYY-MM-DD}{指定位数序号不足0添加} 比如:B2CK202110230000001
分布式情况可以通过redis实现
之所以要记录这个其实是我以前一直陷入一个误区以前思路
1.获取序列
incr orderCode:sequence(incr是原子的) 然后第二天怎么重置呢
2.定时任务每日重置 set orderCode:sequence 0 那么就涉及到一个锁的问题和实时性问题
其实换一个思路就豁然开朗了
我们可以 Incr orderCode:sequence:{yyyy-mm-dd}
如 Incr orderCode:sequence:20211023 并设置过期时间为1天
到了第二天 则通过orderCode:sequence:20211024获取通过最新的key来获取编号 以前那个一天后过期了 完美解决
其实有时达到想要的效果很简单 只需要换一种实现思路

浙公网安备 33010602011771号