gpt4 book ai didi

redis - 从具有非连续分数的排序集中检索值/成员

转载 作者:可可西里 更新时间:2023-11-01 10:55:06 28 4
gpt4 key购买 nike

我有一个分数列表。使用这些,我需要从 redis 排序集中提取值。

我知道我可以使用 zrangebyscore - 但如果我提供的列表中的分数不连续怎么办?在这种情况下,我不能依赖 zrangebyscore min max 类型的命令。

在这种情况下,从排序集中检索这些值的最有效方法是什么?看来我能做的最好的就是在这里一一检索。正确吗?


这是一个示例(将排序集显示为元组列表):

list_of_scores = [4, 1, 3] # these are to be retrieved

sorted_set = [(item_1, 1),
(item_2, 2),
(item_3, 3),
(item_4, 4)]

每个元组都是一个member, score 对。


更新:这是一个建议:

for score in scores:
my_pipeline.zrangebyscore("my_sorted_set",score,score)
result = my_pipeline.execute()

最佳答案

逐一检索的问题是RTT太多。您可以使用 PIPELINE 或将流程包装到 Lua 脚本中,以提高逐一检索的效率。

此外,您似乎正在使用 Sorted Set 作为 HASH,例如分数作为哈希键,而成员名称作为哈希值。所以也许 HASH 更适合您的场景。

关于redis - 从具有非连续分数的排序集中检索值/成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45281777/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com