小编Dav*_*Hsu的帖子

使用Redis命令incr并到期时的竞争条件

基于redis文档:http://redis.io/commands/incr

在段落模式:速率限制器2一个较短的版本代码:

value = INCR(ip)

IF value == 1 THEN
  EXPIRE(ip, 1)

它声称有一个竞争条件让EXPIRE永远不会执行.这意味着ip的值可以某种方式从0反弹到2.

但是在我看来,由于Redis是单线程而INCR是一个原始命令,它本身不应该是原子的?即使两个客户几乎同时进行INCR,它们如何检索0或两者都检索2?

increment race-condition redis

8
推荐指数
2
解决办法
8739
查看次数

标签 统计

increment ×1

race-condition ×1

redis ×1