缓存策略

Posted ccaa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缓存策略相关的知识,希望对你有一定的参考价值。

缓存策略

缓存的实际用处

接单大厅
物流仓库等

缓存的场景

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

缓存的策略

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

缓存的位置

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

缓存实现的要点

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

出现的问题

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

一般组件

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

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

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

以上是关于缓存策略的主要内容,如果未能解决你的问题,请参考以下文章

iOS web缓存策略以及手动清除缓存

高并发系统:缓存使用-读写策略

联合阅读浏览器缓存策略

缓存策略

三大框架 之 Hibernate生成策略与缓存策略(主键生成策略持久化持久化类划分一级缓存事物管理)

安卓中的缓存策略系列安卓缓存策略之综合应用ImageLoader实现照片墙的效果