Redis系列之实现分布式自增主键
import redis
class RedisSequence:
"""
使用Redis实现分布式自增主键序列生成器
"""
def __init__(self, redis_conn, key, increment=1):
self.redis_conn = redis_conn
self.key = key
self.increment = increment
def get_next_id(self):
"""
获取下一个ID值
"""
next_id = self.redis_conn.incr(self.key, amount=self.increment)
return next_id
# 使用示例
redis_conn = redis.StrictRedis(host='localhost', port=6379, db=0)
seq = RedisSequence(redis_conn, 'user_id_sequence')
print(seq.get_next_id()) # 输出: 1
print(seq.get_next_id()) # 输出: 2
这段代码定义了一个名为RedisSequence
的类,它使用Redis的INCR
命令来原子地递增键的值,并返回递增后的值。使用时,需要提供一个Redis连接和一个键名。这个类可以用来生成用户ID、订单ID等需要唯一性的标识符。
评论已关闭