【发布时间】:2016-05-10 14:59:42
【问题描述】:
我有一个实时增长的排序集,它包含一些 ID,我想以相反的顺序一次检索 5 个 ID。这基本上是为了实现分页。这些 ID 是 Hashmap 的键。有没有办法使用 redis ZSet 操作一次有效地获取 5 个元素?
例如,在下面的排序集中,假设我想在“572c7d87e53156245a3fd167”之前获取 5 个元素,如果在运行时的最后一个元素之后可能会继续添加新 ID,我该怎么做?预期的结果应该给我 ID 572c7c58e53156245a3fd166、572c7ad2e53156245a3fd165、572c746e1eeba6b059b08f1b、572c74531eeba6b059b08f1a 和 572c7c6fc9612adca579。
1) "572b58c0dd319a1a4703eba8"
2) "1462429760.8629999"
3) "572c697e612ad65757cca4f7"
4) "1462499582.6889999"
5) "572c6a8e612ad65757cca4f8"
6) "1462499854.056"
7) "572c6fc9612ad65757cca4f9"
8) "1462501193.927"
9) "572c74531eeba6b059b08f1a"
10) "1462502355.5250001"
11) "572c746e1eeba6b059b08f1b"
12) "1462502382.313"
13) "572c7ad2e53156245a3fd165"
14) "1462504018.325"
15) "572c7c58e53156245a3fd166"
16) "1462504408.1370001"
17) "572c7d87e53156245a3fd167"
18) "1462504711.4200001"
19) "572c7da3e53156245a3fd168"
20) "1462504739.352"
【问题讨论】:
-
你看过zrevrange吗?
-
感谢@ItamarHaber。是的,我看过了。就我而言,主要挑战在于分数的值。因此,如果我想要最后 N 个值,则很难为分数设置下限以提供范围。