目标
缓存读取占满 CPU,因为大值的 JSON 解析开销高。本配方在缓存路径上用 MessagePack 编解码替代 JSON,使相同数据以更紧凑的二进制往返,再用基准对比字节大小与序列化耗时;提醒二进制格式调试更难,迁移期应保留 JSON 回退并给缓存值加版本。
步骤要点
- 在缓存路径用 MessagePack 编解码替代 JSON。
- 用基准对比体积与耗时。
- 为缓存值加版本并保留 JSON 回退。
- 提供能解码 MessagePack 的排查工具。
import { encode, decode } from '@msgpack/msgpack';
await cache.set(key, encode(value));
const value = decode(await cache.get(key));
排错提示
- 二进制格式更难排查。
- 生产与消费必须约定同一格式。
- 收益随数据形态而异。
适用边界
- 可调试性下降。
- 双方需格式一致。