我有一次需要完成N次的手术。该操作由接收请求的许多可能的并行过程完成。一个过程必须检查计数器是否超过了N,如果没有,则增加计数器并执行操作。我想我可以使用Redis计数器。
但是,如果我只是GET
再加上INCR
一个值,我可能会遇到争用条件,这将导致该操作执行N次以上。如何test-and-incr
对Redis执行某种操作?
我知道我可以使用,WATCH
但这是一个乐观的锁。我希望每秒会有很多碰撞。这将导致很多失败。也许我只是包装简单GET
,并INCR
具有某种外部互斥的。但是我不确定性能是否足够好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句