Redis原子计数器incr分布式唯一id生成器

Redis原子计数器incr分布式唯一id生成器

为什么分布式系统需要用到ID生成系统

在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据库的分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求;特别一点的如订单、骑手、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。
可用版本: >= 1.0.0
时间复杂度: O(1)
为键 key 储存的数字值加上一。

如果键 key 不存在, 那么它的值会先被初始化为 0 , 然后再执行 INCR 命令。

如果键 key 储存的值不能被解释为数字, 那么 INCR 命令将返回一个错误。z

本操作的值限制在 64 位(bit)有符号数字表示之内。

Note

INCR 命令是一个针对字符串的操作。 因为 Redis 并没有专用的整数类型, 所以键 key 储存的值在执行 INCR 命令时会被解释为十进制 64 位有符号整数。

返回值
INCR 命令会返回键 key 在执行加一操作之后的值。

代码示例
redis> SET unique_key 1
OK

redis> INCR unique_key
(integer) 2

redis> GET unique_key # 数字值在 Redis 中以字符串的形式保存
“2”

你可能感兴趣的:(Redis)