在具有与生菜绑定的开放式最大值的 redis 集群中读取 zset 的正确方法是什么?

What is the right way to read a zset in a redis cluster with an open-ended max bound with lettuce?

我已经使用ZADD命令将一堆ID及其相应的分数插入到redis实例中。分数基本上是调用 ZADD 的时间戳。

现在我想检索一个 ID 列表,其分数大于五分钟前的时间戳。

客户端是用java写的,我用的是lettuce作为redis客户端库

我有几个问题:

  1. 这是 redis 网站 (https://redis.io/commands/zrangebyscore) 上 zrangebyscore 文档的 link。然而在生菜网站上,对应的标记为 'Deprecated'。是文档不一致,还是 lettuce 已经不再支持这个 API?

  1. 我希望能够检索到一个ID列表,其分数大于某个数字N,但我不关心上限。

在 lettuce 的文档中 this API zrange 似乎很适合我的目的。但是我可以用什么 sopt 来表达我不关心上限?文档对此并不清楚。

Redis zrange 命令是一个基于零索引的命令。这意味着索引从 0 开始,并随着您添加新元素而递增。此处有用的是,您可以通过指定负索引 -1 检索最后一个索引,通过指定 -2 检索倒数第二个索引,依此类推。在redis网站上查看更多关于zrange的细节here

要检索整个范围,您可以运行

zrange keyname 0 -1

请注意,“0”可以替换为任何索引,这意味着上述命令将从该索引位置开始获取值。因此,这不能直接用于获取高于特定分数的所有值。

要从特定分数 N 中检索,请使用

zrangebyscore keyname N +inf

Here 是自 Lettuce 4.3

以来 zrangebyscore 可用的正确 Lettuce API