获取Redis排序集中最后插入项的密钥和分数

时间:2016-04-16 08:20:26

标签: redis

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

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

我考虑使用list,但我还需要按键访问元素,这就是我想使用有序集(更好的访问时间复杂度)的原因。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以将分数设为复合值:时间戳与原始分数的串联。

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

示例:148594228400023

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