首页 > 其他 > 详细

Redis实现分表操作id唯一

时间:2020-02-12 23:21:20      阅读:183      评论:0      收藏:0      [点我收藏+]

业务场景

大型企业级应用中,分表操作是基本操作,使用多张表存储同类型数据,但是对应的主键id必须保证统一性,不能重复。Oracle数据库具有sequence设定,可以解决该问题,但是mysql数据库并不具有类似的机制,那么如何解决?

技术分享图片

解决方案

  • 设置数值数据增加指定范围的值
incr key
incrby key increment
incrbyfloat key increment
  • 设置数值数据减少指定范围的值
decr key
decrby key increment

技术分享图片

string作为数值操作

  • string在redis内部存储默认就是一个字符串,当遇到增减类操作incr,decr时会转成数值型进行计算
  • redis所有的操作都是原子性的,采用单线程处理所有业务,命令是一个一个执行的,因此无需考虑并发带来的数据影响.
  • 注意: 按数值进行操作的数据,如果原始数据不能转成数值,或超越了redis数值上限范围,将报错。9223372036854775807 (java中long型数据最大值,Long.MAX_VALUE)

Redis实现分表操作id唯一

原文:https://www.cnblogs.com/ifme/p/12301172.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!