Redis 支持读写分离的 RedisJSON 客户端组件
简单说明
为什么需要 RedisJSON?
在没有 RedisJSON 之前,我们要存储一个 User 对象,通常有两种苦逼做法:
- 方案 A(String 序列化):把整个对象转成 JSON 字符串存入。痛点是如果你只想修改一个字段,你必须本地处理和网络传输整个字符串。在高并发下,这极其浪费带宽且存在并发覆盖风险。
- 方案 B(Hash 散列):用 Redis Hash 存。痛点是无法处理嵌套结构。如果用户的address是个复杂的嵌套对象,Hash就没辙了。
RedisJSON 的出现: 让你能像操作 MongoDB 一样,直接在 Redis 内部解析、查询和部分修改 JSON 文档。并且 JSON.SET (NX/XX) 更新某个字段是原子的,这完美解决了 “读取-修改-写回” 产生的并发冲突。