def decr(self, key, amount, minimum, ttl):
with self.client.pipeline() as pipe:
while True:
try:
pipe.watch(key)
value = int(pipe.get(key) or b"0")
value -= amount
if value < minimum:
return False
pipe.multi()
pipe.set(key, value, px=ttl)
pipe.execute()
return True
except redis.WatchError:
continue
评论列表
文章目录