zrevrange 与相同分数的成员顺序不颠倒

问题描述

zrange sortedSetKey 0 -1 rev

这会以相反的顺序返回成员。现在,如果有多个成员的分数相同。它以相反的顺序返回成员(同分成员按字典顺序排列)

问题:如何按分数降序排列成员的 zrevrange,但按升序排列相同分数的成员。这可能吗?

PS:假设成员是一个整数(0 到 2^64)

解决方法

否定你的分数。

例如,假设您目前拥有:

> ZADD foo 1 a 0 b 1 c 2 d
(integer) 4
> ZRANGE foo 0 -1 REV
1) "d"
2) "c"
3) "a"
4) "b"

否定分数:

> ZADD bar -1 a 0 b -1 c -2 d
(integer) 4
> ZRANGE bar 0 -1
1) "d"
2) "a"
3) "c"
4) "b"