常用的缓存方式

image.png

  • 全量缓存:set user:1select * from user where id = 1
  • 部分部分:set user:1select name, sex, age from user where id = 1

缓存粒度即为以上问题,是全部缓存,还是部分缓存?我们一般有三个角度进行说明。

三个角度

  • 如果是通用性:全量属性更好
  • 如果从占用空间考量:部分属性更好
    • 全量会造成内存浪费
    • 全量会造成网络传输流量较大,存在耗时情况
    • 全量数据的序列化与反序列化的 CPU 开销更大
  • 从代码维护角度考量:表面上全量属性更好

缓存全部数据与部分数据的对比

数据类型 通用性 空间占用**(内存空间+网络带宽)** 代码维护
全部数据 简单
部分数据 较为复杂