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

How to traverse a sorted set in Redis in reverse order using zscan?

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

我看到两个解决方案:

  1. 使用负优先级(因此使用 -3 而不是 3)
  2. 使用 ZREVRANGEBYSCORE 对键切片进行分页,但我更愿意使用迭代器。

还有其他方法吗?

使用迭代器扫描 Sorted Set 保证任何顺序。为此使用 ZREVRANGEBYSCORE