Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Data structures Redis中的相交排序集_Data Structures_Redis_Data Modeling - Fatal编程技术网

Data structures Redis中的相交排序集

Data structures Redis中的相交排序集,data-structures,redis,data-modeling,Data Structures,Redis,Data Modeling,我在Redis中有一个排序集,包含如下值: ZADD ranking1 0 Kyle Neath ZADD ranking1 1 Cameron McEfee ZADD ranking1 2 Ben Bliekamp ZADD ranking1 3 Justin Palmer ZADD ranking2 0 Cameron McEfee ZADD ranking2 1 Justin Palmer ZADD ranking2 2 Kyle Neath ZADD ranking2 3 Ben Bl

我在Redis中有一个排序集,包含如下值:

ZADD ranking1 0 Kyle Neath
ZADD ranking1 1 Cameron McEfee
ZADD ranking1 2 Ben Bliekamp
ZADD ranking1 3 Justin Palmer

ZADD ranking2 0 Cameron McEfee
ZADD ranking2 1 Justin Palmer
ZADD ranking2 2 Kyle Neath
ZADD ranking2 3 Ben Bliekamp
。。。等等


有没有办法获取某个人的分数并以列表形式返回?例如,调用
Kyle Neath
将返回
[0,2]
。我是否应该以不同的方式对此进行建模以实现相同的目标?

根据当前的数据布局,实现列表的唯一方法是每个排名使用一个
zscore

除此之外,您还可以为每个人设置一个哈希值,其中包含他们在每个排名中的位置。内存使用率不会高得多,因为字符串可以重用,哈希值也非常便宜。 例如:

HMSET "Kyle Neath" ranking1 0 ranking2 2
HMSET "Cameron McEfee" ranking1 1 ranking2 0
HMSET "Ben Bliekamp" ranking1 2 ranking2 3
HMSET "Justin Palmer" ranking1 3 ranking2 1
去拿名单

HVALS "Kyle Neath"

但是,您必须确保应用程序代码中排序集和哈希值的一致性。

IMHO这是正确的方法(每人有一个额外的哈希值)