如何使用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 生成器。
我看到两个解决方案:
- 使用负优先级(因此使用 -3 而不是 3)
- 使用
ZREVRANGEBYSCORE
对键切片进行分页,但我更愿意使用迭代器。
还有其他方法吗?
使用迭代器扫描 Sorted Set 不保证任何顺序。为此使用 ZREVRANGEBYSCORE
。
我在 Redis 中有一个排序集,优先级从 0 到 3。我想使用 python 迭代器 zscan_iter
从最高优先级到最低优先级遍历这个排序集。但是,使用 zscan_iter
给我从 0 开始的项目。有没有办法颠倒顺序?不幸的是,reverse()
仅适用于迭代器而不适用于 python 生成器。
我看到两个解决方案:
- 使用负优先级(因此使用 -3 而不是 3)
- 使用
ZREVRANGEBYSCORE
对键切片进行分页,但我更愿意使用迭代器。
还有其他方法吗?
使用迭代器扫描 Sorted Set 不保证任何顺序。为此使用 ZREVRANGEBYSCORE
。