缓存穿透
# 访问,缓存中不存在该数据
#使用非正常的url
1、服务器压力突然变大
2、redis命中率降低
3、一直查询数据库
解决方案
第一解决方案:报警, 网警去解决
缓存击穿
##
1、redis中某个key过期,大量请求使用该key(热门访问的key)
现象:
1、数据库的访问瞬时增加
2、redis未出现大量key过期
3、redis正常运行
解决方案
缓存雪崩
原因:
1、极少时间内,出现大量key集中过期状况
现象:
1、数据库压力变大,造成服务器崩溃
解决方案
分布式锁
基于redis实现
释放锁,删除 del users
设置锁的过期时间:防止死锁
expire users 10
上锁的时候直接设置过期时间:
set user 10 nx ex 12
java实现
问题:释放错了锁![](https://img-blog.csdnimg.cn/88fa9cc60a3e4c788ae59ad1c8f3b283.png)
解决:
问题2:
缺乏原子性 ,使用lua脚本保证redis的原子性,使其不能互相干扰
redis新功能