如何使用zscan以相反的顺序遍历Redis中的有序集?

时间:2018-01-05 14:37:11

标签: python redis iterator redis-py

我在Redis中有一个排序集,优先级从0到3开始。我想使用python迭代器zscan_iter从最高优先级到最低优先级遍历这个有序集。但是,使用zscan_iter给我从0开始的项目。有没有办法扭转顺序?不幸的是,reverse()仅适用于迭代器,而不适用于python生成器。

我看到两个解决方案:

  1. 使用否定优先级(因此,而不是3使用-3)
  2. 使用ZREVRANGEBYSCORE通过切片键分页,但我更喜欢使用迭代器。
  3. 还有其他方法吗?

1 个答案:

答案 0 :(得分:3)

Scanning the Sorted Set with an iterator does not guarantee any order. Use ZREVRANGEBYSCORE for that.