关于springboot的参考文献_SpringBoot 集成 layeringcache 实现两级缓存调研与实践

前言

对于系统查多改少的数据,可以通过缓存来提升系统的访问性能。一般情况下我们会采用 Redis ,但是如果仅仅依赖 Redis 很容易出现缓存雪崩的情况。为了防止缓存雪崩可以通过 Redis 高可用,主从+哨兵解决方案、本地 ehcache 缓存 + hystrix 限流&降级、Redis 持久化 等手段有效的防止缓存雪崩。其中同时使用本地缓存和Redis 缓存就是两级缓存。本文主要介绍的内容就是:在SpringBoot 项目下实现两级缓存,具体的介绍内容如下:

  • 什么是缓存雪崩?
  • 什么是两级缓存?
  • SpringBoot 实现两级缓存解决方案。
  • SpringBoot 集成 layering-cache 实现两级缓存

什么是缓存雪崩?

对于不了解什么是缓存雪崩小伙伴,这里在简单的介绍一下。如果您了解什么是缓存雪崩可以绕过该小节。

对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没有采用什么特别的方案来处理这个故障,DBA 很着急,重启数据库,但是数据库立马又被新的流量给打死了。

这就是缓存雪崩。

dc5a2fbeb4f2f7b909bfe460846c98c3.png
redis-caching-avalanche

为了防止缓存雪崩,一般会采用方式如下:

事前:Redis 高可用,主从+哨兵,Redis cluster,避免全盘崩溃。

事中:本地 Ehcache 缓存 + Hystrix 限流&降级,避免 MySQL 被打死。

事后:Redis 持久化,一旦重启,自动从磁盘上加载数据,快速恢复缓存数据。

缓存雪崩介绍引用 https://github.com/shishan100/Java-Interview-Advanced 中华石杉--互联网Java进阶面试训练营

什么是两级缓存?

一级缓存就是:本地缓存,二级缓存就是:Redis。当访问请求过来的时候,先从一级缓存获取数据,如果一级缓存不存在则从二级缓存中获取,从二级缓存获取到数据后在将其设置到一级缓存。

为什么两级缓存可以防止缓存雪崩?

当Redis 宕机后请求会获取本地缓存而不是直接走MySql 来防止缓存雪崩

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值