redis - 获取 Redis 排序集中最后插入的项的键和分数

标签 redis

现在我对解决方案做了一些更改。我现在想要得到的是给定键范围的键->分数对。例如: 设置 = [1:3, 2:5, 7:8, 10:1] 对于范围 [2, 8] 我想得到:[2: 5, 7: 8]

如何从 Redis 排序集中获取最后插入的(或最后 5 个)项目。我尝试了 zrange 函数,但它在排序时考虑了分数。我能以某种方式让它们按插入时间排序吗?或者,通过 key ?

我考虑过使用列表,但我还需要按键访问元素,这就是为什么我想使用排序集(更好的访问时间复杂度)。

谢谢!

最佳答案

你可以让你的分数成为一个复合值:时间戳和原始分数的串联。

插入项目时的前 10 位是时间戳。最后一位 x 是该项目的分数(意味着您必须在开头添加一些 0 才能始终具有相同的位数)。

示例:148594228400023

然后,您可以使用 zrevrangebyscore 获取最后插入的 5 个项目并检索项目的分数。

关于redis - 获取 Redis 排序集中最后插入的项的键和分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36661869/

相关文章:

c# - 如何使用 ServiceStack Redis API?

heroku - 请求缓存 : connecting using REDIS_URL

proxy - 在一个 url 下的马拉松 (mesos) 中运行 redis

django - 具有多个 django 站点的 celery

linux - Redis:开放对外调用: `bind: Address already in use`

hash - Redis 哈希表的使用情况

python-3.x - 如何与 Tornado IOLoop同时运行长时间运行的阻止功能

c# - 为什么 Redis 连接可以在 C# 中工作而无需指定凭据?

node.js - 如何使用 Node.js 在 Redis 中的 Sorted Set 的子键上设置过期

redis - 没有 MULTI 的 ERR EXEC - spring redis + jedis