二十六、缓存穿透的解决方案

2020-11-30  本文已影响0人  那钱有着落吗

顾名思义,本身redis的存在就是像屏障一样,挡在数据库前面,为数据库分担压力,如果流量还是穿过了reids,那么就相当于redis这个屏障失效了,所以叫做缓存穿透

image.png

如图所示就是一个缓存穿透的典型例子,我们首先获取缓存中的数据,如果没有,就查询数据库,然后不为空就保存数据到redis;

这样就造成了一个问题,如果一个key在缓存中没有数据,数据库中也没有数据,一直访问这个接口,就会不断的去直接访问数据库,redis这个屏障也就被穿透了;

怎么处理呢?

image.png

如图,即使数据库中查询的数据为空,也要放到缓存里面,这样缓存里就是一个空的数组,如果下回调用接口,缓存就不为空了,也就不会直接访问到数据库,redis缓存就无法被穿透,还是会保护好数据库。

上一篇 下一篇

猜你喜欢

热点阅读