什么是redis缓存穿透?
redis缓存穿透就是当服务器发送大量不存在的查询请求是?redis无法命中,导致大量请求打入数据库,然而数据库无法支持那么高的并发。
如何解决redis缓存穿透问题?
方案一:缓存空数据。
当发起请求查询不存在的数据时,redis缓存空数据,这样下次再次查询这个空数据时就会命中redis。
缺点:当再次存储相关数据进入数据库时,查询将会命中redis中的空数据。
方案二:
布隆过滤器:
首先缓存会预热布隆过滤器,布隆过滤器会通过三次hash算出三个不同的hash值然后在bitmap中将相应位置的值改为1,每次请求会先经过布隆过滤器,算出hash值上对应bitmap的值是否都是1.如果都为一。才去redis中查询。
缺点:会出现误判的情况。如下图
数组越长误判的可能性越低。
标签:缓存,hash,redis,布隆,查询,穿透,过滤器 From: https://blog.csdn.net/weixin_73328400/article/details/143468358