作者:mobiledu2502886333 | 来源:互联网 | 2023-07-26 14:23
解读Redis内存Redis缓存的使用极大地提升了应用程序的性能和效率,特别是查询方面。但是同时带来了一些问题。其中最要害的就是数据的一致性问题,因为一致性的要求很高,因此就不
解读Redis内存
Redis缓存的使用极大地提升了应用程序的性能和效率,特别是查询方面。但是同时带来了一些问题
。其中最要害的就是数据的一致性问题,因为一致性的要求很高,因此就不能很友好的使用缓存了
1. 缓存穿透
就是查询一个数据库不一定存在的数据,正常使用缓存是先在缓存中进行查询,如果key已经不存在或者已经过期,会在数据库中进行查询,并把查询的结果放进缓存,如果查询对象为空,就不会存入缓存。
如果大量的查询不存在,或者恶意的查询攻击导致数据库压力过大,甚至瘫痪。
查询了不存在的查询
2. 缓存雪崩
指在某一段时间内缓存集中的过期或失效,产生的原因之一是刚存入到缓存中的数据马上被进行了淘汰,
下次在访问压力都会着落在数据库,因此会给数据库产生一个压力波峰。
解决此问题就是给热门和冷门查询给予不同的缓存时间
集中过期也还好,不算太可怕,致命的是某个缓存服务器的节点当机或者断网,这样对数据库的压力是不可预知的。
数据在缓存中大量的失效
3.缓存击穿
是指一个key非常的热点,在不停的扛着大并发,当这个key在失效的瞬间持续的查询就会导缓存击穿,直接请求数据库,导致数据库的压力过大。
热点查询
4.缓存倾斜
就是查询集中到了某个节点,某个节点的qps过大,导致数据库压力过大,有可能会拖垮整个服务。