基本目录
一、Redis雪崩
1.1、问题描述和分析
问题现象描述
每个(不同的)key(即数据)如果设置了失效时间的话,如果大量key同时过期的时候,现在又大量地去请求这些key时,因为redis里面没有这些数据,就会大量的请求就会大量涌向数据库,就会导致数据库处理不过来,导致“雪崩”----------大量key失效,很多请求【主要是针对不同key的大量来说】直接变成去操作数据库。
问题分析及影响
就是高TPS的请求忽略Redis存在,直接打到数据库DB上造成系统压力。
1.2、解决方法
(1)、尽量保证整个 redis 集群的高可用性,发现机器宕机尽快补上【主从复制+持久化机制,保证Redis服务存在】。
(2)、选择合适的内存淘汰策略。**如果是需要回源的场景。**在设置失效时间的时候,给它加一个随机的秒数(0~60),来让这些大量的请求进行错开对数据库的访问【杜绝某一时刻,有大量的连接操作数据库】。**如果不需要回源的场景。**通过定时任务机制将数据刷入Redis,防止回源到DB造成影响。
二、Redis穿透
2.1、问题描述和分析
问题现象描述
Redis和数据库DB中都没有数据,用户的每次请求都会“回源”到mysql,当大量请求时会压垮数据库。
问题分析及影响
不同的请求每次都是“Redis–My