【发布时间】:2020-12-28 00:20:29
【问题描述】:
我一直在阅读关于 SETNX 的官方 Redis 文档及其部分 Handling deadlocks 并想就这部分提出问题:
"如果另一个客户端,例如 C5,比 C4 快,并且通过 GETSET 操作获得了锁,则 C4 GETSET 操作将返回一个未过期的时间戳。C4 将简单地从第一步重新启动。请注意,即使 C4将密钥设置在未来几秒钟内这不是问题。”
在这个例子中,只有 2 个客户端在争夺锁,C4 和 C5。假设有超过 2 个竞争者,C4、C5……一直到 CX。如果 C4 和所有其他客户端一起到达并延长 C5 的锁定持续时间,C5 的锁定持续时间是否有可能堆积到大量(可能永远不会结束?)?
【问题讨论】:
标签: redis