如今redis被广泛的运用于各互联网公司中,无论是大厂还是普通的小公司均可看到其身影,对于后端程序员来说并不陌生。在面试中也是也是属于高频问题,其中缓存穿透、缓存雪崩和缓存击穿更是常见,今天小杨就和大家一起来认识认识其真面目。
缓存穿透
- 设置校验规则,对于一些不符合规则的key可以在查询之前直接处理掉。或者是利用布隆过滤器(BloomFilter)先过滤
- 利用互斥锁。缓存失效或者查询不到的时候,先去获得锁,得到锁了,再去请求数据库。避免大量请求同时落到数据库中
- 无论数据库是否查询得到,都将值写到redis缓存中,后面的查询就直接落到redis中
- 可以对短时间内大量相同的请求的ip做限制访问
缓存雪崩
缓存击穿
总结
面对上面三种情况,使用redis,我们可以事先搭建好稳定,可用的架构服务,如主从+哨兵。在使用的过程中,对请求进行过滤(如布隆过滤器或者是自定义的规则),避免过多无效的请求。做好限流、降级容灾,避免到数据库进行查询,导致数据库无法正常工作。
欢迎下方交流讨论。如果本篇博客有任何错误,请批评指教,不胜感激 !
共同进步,学习分享
欢迎大家关注我的公众号【写代码的小杨】,相关文章、学习资料都会在里面更新,整理的资料也会放在里面。
觉得写的还不错的就点个赞,加个关注呗!持续更新 !!! 点关注,不迷路,小杨带你上高速
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。