两种存法对比
| 维度 | String + JSON | Hash 字段 |
|---|---|---|
| 整对象读取 | 一次 GET,解析在客户端 | HGETALL 取全部字段 |
| 单字段更新 | 需要读改写整条 | HSET 直接改一个字段 |
| 部分字段过期 | 不支持 | 7.0 起支持 HEXPIRE 按字段过期 |
| 内存 | 序列化体积大则偏高 | 小对象 listpack 更紧凑 |
示例
示例
redis-cli SET user:1001 '{"name":"alice","age":30}'
redis-cli HSET user:1002 name alice age 30
redis-cli HMGET user:1002 name age
redis-cli HSET user:1002 age 31字段级原子更新用 HINCRBY、HSETNX;追求简单时 JSON 加客户端压缩也是常见方案。