我制作了一个用于更新许多客户端的脚本。该脚本应该能够在多个实例中运行。
首先,Redis 会检索所有客户端的 ID。然后,脚本的每个实例将 RPOPLPUSH-ing 所有客户端(更新一个客户端并放在列表的后面)。
脚本应该能够检测新客户端是否已注册(查询数据库)并且需要将其 ID 放入列表/集合中。因此,我需要让集合具有唯一性,没有重复 ID。
排序集似乎是这里的解决方案,但它没有 RPOPLPUSH 功能。我有哪些选择?
最佳答案
使用 Sorted Sets,但使用简单的 Redis 服务器端 Lua 脚本 (EVAL
) 实现您自己的请求命令变体。
Sorted Sets 总是按分数排序(然后,如果分数相同,则按元素字典顺序排序)。从问题中不清楚你将从哪里“弹出”(最高?最低?)以及你将被推到哪里,但你知道你的要求你可能最清楚:)
关于php - 在 Redis 中,如果我需要具有 RPOPLPUSH 功能的排序集怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49747566/