我为每个用户都有一个代表他们当前得分的索引。 我想找到所有分数相同的用户。
假设输入如下,我如何仅检索用户1和2?
ZADD users 0 1:10
ZADD users 0 2:10
ZADD users 0 3:5
我希望做类似docs中提到的操作,但是由于该键太大,因此我不能使用该键作为索引(对于我更改为1,2,3的帖子,所以这不是问题),这就是为什么我将其设置为0。
我认为该命令可能类似于ZRANGEBYLEX users [0:10 (:10
,但返回的全部为3。
1) "1:10"
2) "2:10"
3) "3:5"
答案 0 :(得分:0)
我能够针对此问题提出解决方案,可以进一步完善为:
检索具有给定分数的所有用户,或为单个用户检索单个分数。
我确定的是,使用名称空间ZADD score:users 0 10:1
ZADD score:users 0 10:2
ZADD score:users 0 5:3
ZADD users:score 0 1:10
ZADD users:score 0 2:10
ZADD users:score 0 3:5
ZRANGEBYLEX users:score [1: [1:\xff # "1:10"
ZRANGEBYLEX score:users [10: [10:\xff # "10:1" "10:2"
对于得分和用户ID都不是足够的描述符。当使用2个不同的键时,很明显可以得到一个范围或单个值。缺点是我希望的写入量的两倍,但这对我来说并没有太多的开销,这是我发现可以正确检索分数和用户的唯一方法。
[]