您的位置:首页 > 其它

分布式缓存--简单理解

2020-06-29 05:03 141 查看

分布式缓存

缓存雪崩:

  • 当大量请求访问同一个缓存时,对应得缓存失效,结果所有的请求都去访问数据库,对数据库CPU和内存造成巨大压力,可能导致宕机,从而形成的一系列连锁反应,造成系统崩溃损坏。
  • 一般处理方式有:设置缓存标记,记录缓存是否过期,过期的话就更新缓存。或者是给不同的缓存设置不同的过期时间

缓存穿透:

  • 当用户查询数据时,在缓存中没命中后,去数据库中查询,查到返回空或者查不到(相当于两次查询了没用的数据)这样请求就绕过缓存直接查数据库,这也是经常提的缓存命中率问题。
  • 一般解决方式有:常用的可以使用布隆过滤器,另外一种简单粗暴如果结果返回空的话就直接把空结构进行缓存,设置过期时间短一点大概不超过5分钟的样子,这样下次请求就会有值了就不会直接去访问数据库了

缓存预热

  • 就是系统上线后,将相关的数据缓存到缓存系统中,避免用户查询的时候先查数据库、再去查缓存的问题

缓存更新(淘汰策略)

  • 除了缓存服务器自带的缓存失效策略之外(Redis 默认的有 6 种策略可供选择),我们还可以根据具体的业务需求进行自定义缓存淘汰策略,常见的策略有两种:
    1、定时去清理过期的缓存;
    2、当有用户请求过来时,再判断这个请求所用到的缓存是否过期,过期的话就去底层系统得到新的数据并更新缓存。

缓存降级

  • 当访问量剧增时、服务器出现问题如:响应时间慢或长时间不响应,为了保证服务的高可用性,系统可根据一些关键数据进行自动降级、也可以通过人工降级的方式来保证服务的高可用,但是要注意该操作是会对服务造成一定损失的谨慎操作,有些服务是无法降级例如:购物车、结算操作。
  • 在缓存降级之前要梳理好,必须要保护的不可以降级和可降级的。降级的方式可以通过业务或者是日志等级来划分降级的级别,一般都是通过日志等级来划分,主要划分为:一般、警告、错误、严重错误,还可以根据不同的级别来设定不同的操作,比如这里的错误和严重错误的时候就可以通过人工降级的方式处理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: