php - 在 Redis 中,如果我需要具有 RPOPLPUSH 功能的排序集怎么办?

标签 php redis predis

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

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

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

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

最佳答案

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

Sorted Sets 总是按分数排序(然后,如果分数相同,则按元素字典顺序排序)。从问题中不清楚你将从哪里“弹出”(最高?最低?)以及你将被推到哪里,但你知道你的要求你可能最清楚:)

关于php - 在 Redis 中,如果我需要具有 RPOPLPUSH 功能的排序集怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49747566/

相关文章:

php mysql 从数据库中检索上传的照片

具有多个项目的开发机器上的 Redis 数据库

php - 如何在共享主机上安装 Redis?

c# - 使用 Azure 中的 ASP.NET Core 将用户 session 保存在 Redis 中

php - php Redis::hscan使用通配符名称和条件检索所有哈希

php - 如何在 Predis 中使用前缀?

php - 获取多个表的最新评论

php - VIM 不高亮 PHP 文件,高亮其他文件

php - 未添加 Wordpress 过滤器

django - Web Sockets 在 Heroku 上的 Django 应用程序中不起作用