NoSQL 开发中或多或少都会用到,也是面试必问知识点。最近这几天的面试每一场都问到了。但是感觉回答的并不好,还有很多需要梳理的知识点。这里通过几篇 Redis 笔记整个梳理一遍,后面再加上面试题。
1、Redis可能的问题
Redis 缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带了一些问题。其中,最要害的是问题,就是数据一致性的问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么久不能使用缓存。
另外一些典型的问题就是,缓存穿透、缓存雪崩缓存击穿,目前,是业界也都有比较流行的解决方案。
2、缓存穿透(查不到数据导致)
缓存穿透的概念简单,用户想要查询一个数据,发现 Redis 内存数据库没有,也就是缓存没有命中。于是向持久层数据库查询。发现也没有,于是本次查询失败。当用户很多的时候,缓存都没有命中,于是都去请求了持久层数据库。这给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透。
解决方案:
1、布隆过滤器
布隆过滤器是一种数据结构,对所有可能查询的参数以 hash 形式存储,在控制层先进行校验
版权声明:本文为weixin_47082274原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。