1.缓存穿透:
描述:
解决方案:


2.缓存击穿
描述
某一Key对应的数据存在,但在Redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般会从后端数据库加载数据并回设到缓存,这个时候大并发的请求可能会瞬间吧数据库压垮。

解决方案:


使用锁 肯定会降低效率

3.缓存雪崩:
问题描述:在极少时间段内,大量key的集中过期

解决方案:


分布式锁:
是一种控制分布式系统共享资源的一种方式

分布式锁主流的实现方案:


使用Redis实现分布式锁:

设置锁通过 setnx(lock,XXX)
释放锁通过 del(lock)
设置锁的过期时间expire lock 10
set lock 10 nx ex 12既上锁又设置过期时间

解决误删锁问题(UUID

加锁

释放锁

使用lua脚本

注意事项:

本文探讨了Redis缓存中的三大问题:缓存穿透、缓存击穿和缓存雪崩,以及对应的解决方案。对于缓存穿透,提出了防止无效请求的方法;缓存击穿时,介绍了使用锁避免数据库压力;缓存雪崩解决方案则提到了利用分布式锁来防止大量key同时过期导致的问题。还详细讲解了如何使用Redis实现分布式锁,并注意防止误删锁的情况。

887

被折叠的 条评论
为什么被折叠?



