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

Laravel中用phpredis通过RedisJSON存储JSON值失败的解决方法

解决Laravel中用phpredis扩展存储RedisJSON类型数据的问题

你操作失败的核心原因是用了错误的RedisJSON命令——RedisJSON并没有JSON.new这个指令,正确的写入命令是JSON.SET,以下是具体的解决方法:

1. 正确写入RedisJSON数据

使用executeRaw执行标准的RedisJSON写入命令,注意必须指定路径参数(用.表示JSON根节点):

$redisCon = Redis::connection('default');
// JSON.SET 命令格式:JSON.SET 键名 路径 JSON字符串
$result = $redisCon->executeRaw(['JSON.SET', 'someKeyValue', '.', '{"math":0}']);

// 成功执行时返回"OK",失败返回false
if ($result === 'OK') {
    // 写入成功的业务逻辑
}

2. 读取RedisJSON数据

要读取存储的JSON结构数据,使用JSON.GET命令:

$jsonStr = $redisCon->executeRaw(['JSON.GET', 'someKeyValue']);
// 转换为PHP数组
$data = json_decode($jsonStr, true);

3. 直接修改JSON内部字段

RedisJSON支持精准修改JSON中的指定字段,无需重新写入整个对象:

// 将math字段的值更新为100
$result = $redisCon->executeRaw(['JSON.SET', 'someKeyValue', '.math', '100']);

4. 验证数据类型

可以通过Redis CLI确认数据类型是否为RedisJSON:

redis-cli
> TYPE someKeyValue
# 正常应返回 "ReJSON-RL"(而非普通字符串类型的"string")
> JSON.GET someKeyValue
# 输出完整的JSON内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:22:34