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

RedisJSON如何使用JSON.MGET一次性获取多个key的完整JSON值

你使用的JSON.MGET k1 k2 .语法本身是RedisJSON批量查询多Key同路径JSON值的标准写法,出现仅返回单条结果的问题,通常是由于你使用的RedisJSON插件版本低于2.0导致的,1.x版本的RedisJSON对JSON.MGET的多Key支持存在兼容性缺陷。

方案1:升级RedisJSON到2.0及以上版本

升级完成后直接执行你之前写的命令即可得到预期结果:

redis-cli-1234> json.mget k1 k2 .
1) "{\"a\":\"a\"}"
2) "{\"b\":\"b\"}"

方案2:使用Redis事务实现(无需升级版本)

如果暂时无法升级插件,可以通过事务批量执行JSON.GET命令,单次请求即可拿到全部结果:

redis-cli-1234> MULTI
OK
redis-cli-1234> JSON.GET k1 .
QUEUED
redis-cli-1234> JSON.GET k2 .
QUEUED
redis-cli-1234> EXEC
1) "{\"a\":\"a\"}"
2) "{\"b\":\"b\"}"

方案3:使用Lua脚本实现(性能更优)

如果查询的Key数量较多,推荐使用Lua脚本减少网络IO开销,性能比事务方案更高:

redis-cli-1234> EVAL "local res = {} for i, key in ipairs(KEYS) do res[i] = redis.call('JSON.GET', key, '.') end return res" 2 k1 k2
1) "{\"a\":\"a\"}"
2) "{\"b\":\"b\"}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 19:06:04