gpt4 book ai didi

redis - 如何从 Redis 中的列表中检索所有哈希值?

转载 作者:IT王子 更新时间:2023-10-29 06:01:22 26 4
gpt4 key购买 nike

在 Redis 中,要存储对象数组,我们应该对对象使用哈希并将其键添加到列表中:

HMSET concept:unique_id name "concept"
...
LPUSH concepts concept:unique_id
...

我想检索列表中的所有散列值(或对象),但列表只包含散列键,所以需要两步命令,对吗?这就是我在 python 中所做的:

def get_concepts():

list = r.lrange("concepts", 0, -1)
pipe = r.pipeline()

for key in list:
pipe.hgetall(key)
pipe.execute()

是否有必要迭代和获取每个单独的项目?能再优化一下吗?

最佳答案

您可以使用 SORT执行此操作的命令:

SORT concepts BY nosort GET concept:*->name GET concept:*->some_key

* 将扩展到列表中的每个项目。

为分页添加LIMIT偏移计数

请注意,您必须枚举散列中的每个字段(您要获取的每个字段)。

另一种选择是使用新的(在 redis 2.6 中)EVAL命令在 redis 服务器中执行 Lua 脚本,这可以执行您的建议,但在服务器端。

关于redis - 如何从 Redis 中的列表中检索所有哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13253810/

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