1. 定时过期:
- 定义:缓存中的数据在添加时设置一个固定的过期时间,到期后自动失效。
- 案例:在Redis中设置键值对时,可以指定一个过期时间,例如`EXPIRE key seconds`。
2. 访问时过期(惰性失效):
- 定义:只有在访问某个数据时,才检查它是否过期。
- 案例:当用户请求数据时,先检查该数据是否过期,如果过期则重新从源头获取并更新缓存。
3. 淘汰策略(基于LRU、LFU等):
- LRU (Least Recently Used) 最近最少使用:淘汰最近最少被访问的缓存项。
- LFU (Least Frequently Used) 最少频率使用:淘汰一段时间内访问次数最少的缓存项。
- 定义:这些策略通常用于当缓存空间满了时,需要腾出空间来存放新的数据。
4. 驱逐策略(基于布隆过滤器):
- 定义:使用布隆过滤器来存储即将失效的键,当检测到某个键将要失效时,提前移除该键,从而避免缓存击穿问题。
- 案例:在面临恶意请求攻击时,使用布隆过滤器可以有效减少数据库的压力。
5. 加锁策略:
- 定义:在访问数据库时加锁,确保同一时刻只有一个线程访问数据库,从而保护后端系统不受高并发压力影响。
- 案例:使用Redis的分布式锁或者数据库的行锁来控制对关键资源的访问。
6. 无效Key保存策略:
- 定义:将失效的Key保存为null值的形式,在后续的请求中可以直接忽略这些无效的Key,避免反复查询数据库。
- 案例:对于已知会频繁失效的Key,可以将其保存为null,并通过异步任务定期刷新这些Key对应的Value。
在实际应用中,开发者会根据具体场景和需求选择合适的缓存失效策略,有时还会结合多种策略来提高系统的稳定性和性能。
本文由作者笔名:16 于 2024-05-26 13:26:02发表在本站,原创文章,禁止转载,文章内容仅供娱乐参考,不能盲信。
本文链接: https://www.0716888.com/wen/2104.html
上一篇
CDN缓存的部署流程
下一篇
HTTP头部字段缓存控制