gpt4 book ai didi

ruby - Redis BRPOP 和 ZADD 原子化

转载 作者:IT王子 更新时间:2023-10-29 06:03:07 26 4
gpt4 key购买 nike

我需要 BRPOP,然后使用 ZADD 将弹出的值添加到排序集中。我看到了两个解决方案(我使用的是 Ruby):

  1. 编写执行这两个操作的 Lua 脚本。但是,Lua 脚本不能阻塞,因为它们会同时占用整个服务器。所以这个解决方案是行不通的;
  2. 使用 redis-rbmulti { ... } block 。但是,在这里我不能在 ZADD 命令中使用弹出的值,因为这不是 redis-rb 实现此 block 的方式。

有了这些,我只剩下一种非原子的方式来实现这一点,即使用 redis-rb 顺序触发这些命令。但是,我真的需要原子性。实现这一目标的方法是什么?

最佳答案

TL;DR 不可能是可能的。

你可以,如果你没有卡在列表中,请查看我的新模块以及对 Redis 核心的 Shiny 的新拉取请求。

  1. Ze POP 模块:https://github.com/itamarhaber/zpop
  2. 拉取请求 #4879“实现 [B]Z[REV]POP 和相应的单元测试”:https://github.com/antirez/redis/pull/4879

关于ruby - Redis BRPOP 和 ZADD 原子化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49938328/

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