gpt4 book ai didi

redis - 检查并增加 Redis 中的计数器

转载 作者:IT王子 更新时间:2023-10-29 06:01:46 25 4
gpt4 key购买 nike

我有一项手术需要完成 N 次,不能再多了。该操作由许多接收请求的可能并行进程完成。进程必须检查计数器是否超过 N,如果没有,则递增计数器并执行操作。我想我可以为此使用 Redis 计数器。

但是,如果我只是 GET 然后 INCR 一个值,我可能会遇到竞争条件,这将导致操作完成 N 次以上。如何对 Redis 执行某种test-and-incr 操作?

我知道我可以使用 WATCH 但那是一个乐观锁。我预计每秒会发生很多次碰撞。这将导致很多失败。也许我可以用某种外部互斥体包装简单的 GETINCR。但我不确定它是否足以满足性能要求。

最佳答案

  • 您可以在这里安全地使用 Redis INCR
  • INCR 返回增量后的值。

  • 您首先检查 INCR 返回的值(看是否需要执行 GET)& 继续根据该值进行操作。

  • 唯一的问题是您必须将 INCR 返回值阈值设置为 N+1,以限制为 N 次操作,即比 N 多一个 redis 操作。例如,如果我们想限制操作只发生 3 次,如果 INCR 在递增后返回 4,那么你停止做进一步的操作,因为它已经发生了 3 次。

enter image description here

关于redis - 检查并增加 Redis 中的计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56899438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com