Redis7系列:RedisJSON使用文档

cover_image

RedisJSON 是 Redis 的扩展模块,支持原生 JSON 数据格式的存储和操作,提供高效的 JSON 路径查询语法(类似JSONPath),支持:

  • 完整 JSON 文档的存储;

  • 原子化局部更新;

  • 嵌套结构快速查询;

  • 与其他 Redis 数据类型(如 Streams)结合使用。

01 RedisJSON 配置

1.1 RedisJSON配置

由于 RedisJSON是Redis的扩展模块,所以需要将该模块加载到Redis中去。 RedisJSON的模块来自Redis Statck的lib中
的resjon.so模块,配置到Redis的配置文件redis.conf中即可:

loadmodule /opt/redis-stack-6.2.6/lib/rejson.so

02 基本语法

2.1 数据类型的支持
  • 字符串(String);

  • 数字类型(Number);

  • 布尔类型(Boolean);

  • 数组(Array);

  • 对象(Object);

  • null

2.2 核心命令
# 设置值(路径必须从根开始)
JSON.SET <key> $ <json_value> 

# 获取值
JSON.GET <key> [<path>]  

# 删除字段
JSON.DEL <key> <path>

# 类型检查
JSON.TYPE <key> <path>

# 数字累加
JSON.NUMINCRBY <key> <path> <value> 

# 数组操作
JSON.ARRAPPEND <key> <path> <value...>
JSON.ARRINDEX <key> <path> <value>

03 使用场景

3.1 典型场景
  • 配置管理: 存储动态配置的嵌套结构;

  • 用户会话: 保存包含多种属性的用户会话数据 ;

  • 实时分析 : 快速更新统计指标中的部分字段 ;

  • 内容存储: CMS 系统存储文章内容及元数据 ;

  • 设备状态: IoT 设备复杂状态的原子更新 。

3.2 优势体现

  • 需要频繁局部更新的场景 ;

  • 涉及多层嵌套查询的场景 ;

  • 需要结合 Redis 其他功能的场景(如过期时间) ;

  • 涉及多层嵌套查询的场景 ;

04 命令行示例

4.1 基础操作
# 插入用户数据
JSON.SET user:1001 $ '{
  "name":"张三",
  "age":28,
  "address":{
    "city":"北京",
    "zipcode":"100000"
  },
  "tags":["tech","sports"]
}'

# 获取城市信息
JSON.GET user:1001 $.address.city
# 返回:"[\"北京\"]"

# 修改年龄(原子操作)
JSON.SET user:1001 $.age 29

# 年龄+10(原子操作)
JSON.NUMINCRBY user:1001 $.age 10

# 添加标签
JSON.ARRAPPEND user:1001 $.tags '"music"'
4.2 路径查询
# 获取所有标签的第一个元素
JSON.GET user:1001 $.tags[0]

# 使用通配符查询
JSON.GET user:1001 $.address.*

** END **

喜欢就点赞、收藏,微信可以搜公众号【编程朝花夕拾】或扫码关注我哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智_永无止境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值