1.缓存穿透:
描述:
解决方案:
2.缓存击穿
描述
某一Key对应的数据存在,但在Redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般会从后端数据库加载数据并回设到缓存,这个时候大并发的请求可能会瞬间吧数据库压垮。
解决方案:
使用锁 肯定会降低效率
3.缓存雪崩:
问题描述:在极少时间段内,大量key的集中过期
解决方案:
分布式锁:
是一种控制分布式系统共享资源的一种方式
分布式锁主流的实现方案:
使用Redis实现分布式锁:
设置锁通过 setnx(lock,XXX)
释放锁通过 del(lock)
设置锁的过期时间expire lock 10
set lock 10 nx ex 12既上锁又设置过期时间
解决误删锁问题(UUID
加锁
释放锁
使用lua脚本
注意事项: