缓存问题二、缓存雪崩

缓存雪崩

  1. 缓存雪崩 :是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。

  2. 缓存雪崩的解决方案:

    • 给不同的Key的TTL添加随机值
    • 利用Redis集群提高服务的可用性
    • 给缓存业务添加降级限流策略
    • 给业务添加多级缓存(添加多种不同的缓存,比如nginx等等)

面试回答:

  • 缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间所有原本应该访问缓存的请求都去查询数据库了,而对数据库 CPU 和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。一般有三种处理办法:
    *
    1. 一般并发量不是特别多的时候,使用最多的解决方案是加锁排队。
      1. 给每一个缓存数据增加相应的缓存标记,记录缓存的是否失效,如果缓存标记失效,则更新数据缓存。
      1. 为 key 设置不同的缓存失效时间。
相关推荐
Pniubi17 小时前
力扣146.LRU缓存机制
算法·leetcode·缓存
欣栀♡19 小时前
Spring 循环依赖不止三级缓存,Boot 2.6 起这个开关默认已经关了
java·spring·缓存
xiaoqiMikko19 小时前
Redis 实战(二):宕机会丢多少数据 —— kill -9 与真断电下 RDB / AOF 逐个实测(6.2.4)
redis·后端
夕除21 小时前
redis--ziplist
redis
2301_32241428041 天前
基于SSM框架的在线考试管理系统的设计与实现14750-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·redis·mysql·tomcat·maven·mybatis·ssm
我星期八休息1 天前
Redis 的原理和使用(2)
前端·数据库·redis·python·mysql·缓存·bootstrap
imDwAaY2 天前
操作系统如何管理程序运行?从线程、进程到内存隔离与用户态切换:CS162 Note2
android·java·redis
码途行者2 天前
处理超时未支付订单:两套轻量化方案,附 PHP 极简实现
开发语言·redis·php
草莓熊Lotso2 天前
【C++ 基于微服务的即时通讯系统】etcd + brpc 从安装到服务注册发现全链路实战
网络·数据库·c++·redis·微服务·etcd
Chenyu_3102 天前
DPDK、TC 和 XDP:Linux 高性能网络到底在优化什么
linux·服务器·网络·缓存