对比
| 格式 | 体积 | 可读性 |
|---|---|---|
| JSON | 大 | 好(调试友好) |
| MsgPack | 中 | 差(需工具) |
| Protobuf | 小 | 差(需 schema) |
| 压缩(JSON+gzip) | 小(CPU 换) | 好 |
键值版本前缀实践
键值版本前缀实践
SET user:1001:v2 '{"name":"张三"}' EX 300
# 结构升级时用 v3 键或兼容解析(双写过渡)
# 反序列化失败不要慌:当作缓存未命中回源重建| 原则 | 反序列化失败=未命中,永不因缓存格式问题报错 |
|---|---|
| 兼容 | 新增字段可空;删除字段先发过渡版本 |
| 压缩 | 大 value 压缩后存,评估 CPU 成本 |
跨语言服务用 Protobuf/Thrift 更稳;单语言且调试频繁用 JSON 更省事。别在缓存里存不可演进的结构。