You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Redis中批量获取多个哈希键的值?是否有MHGETALL操作?

一次获取多个Redis哈希键值对的实现方法

Redis本身没有提供直接一次性获取多个哈希所有键值对的单条命令,但可以通过以下两种方式实现批量获取:

1. 使用Redis管道(Pipeline)

管道允许一次性发送多条命令到Redis服务器,服务器批量执行后返回所有结果,有效减少网络往返开销。

命令行示例(redis-cli)

redis-cli --pipe <<EOF
HGETALL myhash
HGETALL myhash2
EOF

代码示例(Python redis库)

import redis

r = redis.Redis(host='localhost', port=6379, db=0)
with r.pipeline() as pipe:
    pipe.hgetall('myhash')
    pipe.hgetall('myhash2')
    myhash_data, myhash2_data = pipe.execute()

# myhash_data 存储myhash的键值对,myhash2_data存储myhash2的键值对

2. 使用Lua脚本

通过Lua脚本在Redis服务器端执行多个HGETALL操作,一次性返回所有哈希的结果,避免多次网络请求。

执行脚本(redis-cli)

EVAL "local res = {}; res['myhash'] = redis.call('HGETALL', 'myhash'); res['myhash2'] = redis.call('HGETALL', 'myhash2'); return res" 0

脚本说明

该脚本会创建一个结果表,分别存入两个哈希的键值对,最终返回一个包含两个哈希数据的嵌套结构,你可以根据客户端的解析能力处理返回结果。

内容的提问来源于stack exchange,提问作者Shubham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 22:27:34