{eval=Array;=+count(Array);}
(1)雪崩、击穿、穿透最终的结果都是请求压力会转移到数据库,导致系统崩溃,但场景有所区别;
(2)雪崩
◆ 大量的不同请求无法在 Redis 中命中,导致请求都流向了数据库,数据库的压力剧增;
◆ 发生雪崩的原因可能是,有大量的缓存 Key 在同一时间过期。
(3)击穿
◆ 并发很大的情况下,针对某个特定的请求,缓存中数据不存在,导致都请求到了数据库,造成数据库压力过大;
◆ 原因通常是某个 Key 过期了;
◆ 和雪崩相比较,击穿是针对的单个 Key。
(4)穿透
◆ 缓存穿透是指请求的数据不在 Redis 缓存中,也不在数据库中,导致访问缓存时,找不到数据,会去请求数据库,而在数据库中也找不到相应的数据;
◆ 并发比较大的时候,数据库会遭受巨大的压力;
◆ 发生穿透的原因可能有两个:
◆ 误操作导致 Redis 和数据库中的数据都被删除了;
◆ 恶意攻击。
2
回答1
回答6
回答1
回答0
回答0
回答0
回答0
回答0
回答0
回答