大家好,这里是编程Cookbook。本文先简要介绍为什么需要使用Redis,以及过期键的删除策略,进而详细介绍Redis雪崩、穿透、击穿的发生场景和解决方案。
前情提要
为什么使用redis?
1. 提高性能:缓存査询速度比数据库查询速度快(内存Vs硬盘);
2. 提高井发能力:缓存分担了部分请求,支持更高的并发。
Redis 的过期键删除策略
Redis 为管理内存,对设置了过期时间的键采用了以下三种删除策略:
1.
定时过期:
* 描述:为每个设置了过期时间的键创建一个定时器,到达过期时间立即清除。
* 优点:对内存很友好,过期数据能及时清除。
* 缺点:需要消耗大量的 CPU 资源来处理定时器,影响缓存响应时间和吞吐量。
2.
惰性过期:
* 描述:只有在访问某个键时才判断其是否过期,过期则清除。
* 优点:最大化节省 CPU 资源。
* 缺点:可能会有大量过期键未被访问而占用内