目录
1、Redis雪崩
缓存雪崩:指大量的缓存key,在同一时间大量的失效
解决方法:
1、key不设置过期时间2、不同的key设置不同的过期时间,尽量错开
3、当redis没有这个key时,可以请求到mysql获取数据,然后更新到redis
2、Redis穿透
缓存穿透:指redis里没有你要的这个数据,mysql也没有,例如key的值自增主键(>0), 请求参数是-1
解决方法:1、这种情况一般是恶意用户的请求导致的,可以对请求参数做校验
2、第一次访问时如果key不存在,则在缓存中设置一个空值,并设置较短的过期时间
3、使用布隆过滤器
3、Redis击穿
缓存击穿:指热点key,大量用户去请求这个缓存key,缓存key失效后,这些请求都会打到数据库上
解决方法:
1、key不设置过期时间
2、在请求数据库时使用分布式锁,获取到数据库数据后,重新更新redis上