redis雪崩、穿透、击穿

雪崩:大量的redis缓存数据同时间全部失效,直接穿过了redis到数据库。造成数据库压力!

 解决方法:

设置缓存时,随机设置redis缓存的失效时间,让他们不在同一时间失效。

redis集群环境时,我们可以把热点key分布到不同的分支节点上

不设置缓存失效时间

设置定时任务,定时刷缓存

穿透:redis和数据库都没有这个数据,形成缓存穿透,通常是恶意访问

对边缘数据的合法性进行校验,不合法直接return不让查询redis和数据库!

屏蔽访问者的ip地址,但容易换ip;

使用布隆检验器

击穿:在redis中没有用户要的热点数据,直接访问到数据库中查找

解决:我们可以判断redis中有没有数据,没有的话在去数据库查询前加锁,只让一个线程来查找,当查询的数据返回到redis后,所有用户就可以通过访问redis来获取数据,但是在分布式业务中,多进程环境里存在问题

我们可以使用分布式锁解决,redis、zookerpr创建分布式锁;

你可能感兴趣的:(redis,mybatis,数据库)