【问题标题】:In Redis, what if I need sorted set with RPOPLPUSH functionality?在 Redis 中,如果我需要具有 RPOPLPUSH 功能的排序集怎么办?
【发布时间】:2018-04-10 07:14:50
【问题描述】:

我制作了一个用于更新许多客户端的脚本。该脚本应该能够在多个实例中运行。

首先,Redis 会检索所有客户端的 ID。然后,脚本的每个实例都会对所有客户端进行 RPOPLPUSH-ing(更新一个客户端并放在列表的后面)。

脚本应该能够检测新客户端是否已注册(查询数据库)并且需要将其 ID 放入列表/集合中。因此,我需要使集合是唯一的,没有重复的 ID

Sorted set 似乎是这里的解决方案,但它没有 RPOPLPUSH 功能。我有哪些选择?

【问题讨论】:

    标签: php redis predis


    【解决方案1】:

    使用排序集,但使用简单的 Redis 服务器端 Lua 脚本 (EVAL) 实现您自己的请求命令变体。

    Sorted Sets 总是按分数排序(然后,在分数相同的情况下,按元素按字典顺序排列)。不清楚你将从哪里“弹出”(最高?最低?)以及你将推动到哪里,但你知道你的要求,你可能最了解:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-27
      • 2021-09-13
      • 2019-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多