我正在读乔西亚·卡尔森的《行动中的雷迪斯》。在第2章中,他使用python中的以下语句将zset的成员重新缩放到其原始分数的一半:
conn.zinterstore('viewed:', {'viewed:': .5})
我的主要问题如下:默认聚合函数是 SUM 所以这不就是把分数加到我已经有的分数上吗?分数不是很高吗 SCORE + 0.5 * SCORE ?为什么它只是覆盖了值?github链接到这里的代码。谢谢。
SUM
SCORE + 0.5 * SCORE
voj3qocg1#
你认为这是 viewed: 两个集合的交集。事实上,由于第二个参数中只有一个元素,所以交叉点中只有一个集合。因此,该集合的每个元素都在交叉点上,其得分的权重为0.5。也许第一个论点是 viewed: ? 这只是要保存到的目标键,它不参与交叉点。您可以在这里看到python参数是如何Map到redis参数的。从另一个方向来看,这就是代码在计算时的实际样子 SCORE + 0.5 * SCORE :
viewed:
conn.zinterstore('viewed:', {`viewed:': 1, 'viewed:': .5})
1条答案
按热度按时间voj3qocg1#
你认为这是
viewed:
两个集合的交集。事实上,由于第二个参数中只有一个元素,所以交叉点中只有一个集合。因此,该集合的每个元素都在交叉点上,其得分的权重为0.5。也许第一个论点是
viewed:
? 这只是要保存到的目标键,它不参与交叉点。您可以在这里看到python参数是如何Map到redis参数的。从另一个方向来看,这就是代码在计算时的实际样子
SCORE + 0.5 * SCORE
: