缓存策略

SoarFly00 2020-06-28

缓存策略

缓存的实际用处

接单大厅
物流仓库等

缓存的场景

  • 计算的结果,如:反射对象缓存
  • 请求的结果,如:DNS缓存
  • 临时共享数据,如:会话存储
  • 热点访问内容页:如:商品详情
  • 热点变更逻辑数据,如:秒杀的存储库,排行榜

缓存的策略

  • 越接近最终的输出结果,效果越好
  • 缓存命中率越高越好

缓存的位置

  • 浏览器中
  • 反向代理服务器中
  • 应用进程内存中
  • 分布式存储系统中

缓存实现的要点

  • 缓存Key生成策略,表示缓存数据的范围,业务含义
  • 缓存失效策略,如:过期时间机制,主动刷新机制
  • 缓存更新策略,表示更新缓存数据的时机

出现的问题

  • 缓存失效,导致数据不一致
  • 缓存穿透,查询无数据时2,导致缓存不生效,查询都落到数据库 **建议:强制返回一个默认值,
  • 缓存击穿,缓存失效瞬间,大量请求访问到数据库:比如同一个页面并发量比较大,建议:使用二级缓存策略,当一级缓存失效时,我们允许一个请求去落到数据库上面,更新缓存数据,其他请求依然请求缓存
  • 缓存雪崩,大量缓存同一时间失效,导致数据库压力 建议:在缓存过期策略上面

一般组件

  • ResponseCache
  • Microsoft.Extensions.Caching.Memory.IMemoryCache
  • Microsoft.Extensions.Caching.Distributed.IDistributedCache
  • EasyCaching

内存缓存和分布式缓存的区别

  • 内存缓存可以存储任意的对象
  • 分布式缓存的对象需要支持序列化
  • 分布式缓存远程请求可能失败,内存缓存不会

相关推荐