缓存雪崩问题(大量key失效)
解决方案
缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机
,导致大量请求到达数据库给服务器带来巨大压力
- 当我们批量导入缓存数据的时候可以给不同的Key的TTL添加随机值,让其在不同时间段分批失效
- 利用Redis集群提高服务的可用性
- 使用一个或者多个哨兵(Sentine)实例组成的系统,对redis节点进行监控
- 在主节点出现故障的情况下,能将从节点中的一个升级为主节点,进行故障转移保证系统的可用性
- 给缓存业务添加降级限流策略
- 给业务添加多级缓存,即使Redis缓存失效了,其他缓存还能起作用
- 浏览器访问静态资源时,优先读取浏览器本地缓存
- 访问非静态资源如发起ajax请求查询数据则需要访问服务端
- 请求到达Nginx后,优先读取Nginx本地缓存;如果Nginx本地缓存未命中,则去直接查询Redis(不经过Tomcat)
- 如果Redis查询未命中才会去查询Tomcat;请求进入Tomcat后,优先查询JVM进程缓存;如果JVM进程缓存未命中,则查询数据库