常用的缓存方式
- 全量缓存:
set user:1
→select * from user where id = 1
- 部分部分:
set user:1
→select name, sex, age from user where id = 1
缓存粒度即为以上问题,是全部缓存,还是部分缓存?我们一般有三个角度进行说明。
三个角度
- 如果是通用性:全量属性更好
- 如果从占用空间考量:部分属性更好
- 全量会造成内存浪费
- 全量会造成网络传输流量较大,存在耗时情况
- 全量数据的序列化与反序列化的 CPU 开销更大
- 从代码维护角度考量:表面上全量属性更好
缓存全部数据与部分数据的对比
数据类型 | 通用性 | 空间占用**(内存空间+网络带宽)** | 代码维护 |
---|---|---|---|
全部数据 | 高 | 大 | 简单 |
部分数据 | 低 | 小 | 较为复杂 |