第一种 简单的解决方法针对这个情况,我们有一种简单的解决方法就是,在数据库没有查询该条数据的时候,我们让该key缓存一个 空数据,这样用户再次以该key请求后台的时候,会直接返回null,避免了再次请求数据库,我来为大家科普一下关于redis缓存穿透出现原因及解决方案?下面希望有你要的答案,我们一起来看看吧!

redis缓存穿透出现原因及解决方案(redis缓存穿透处理)

redis缓存穿透出现原因及解决方案

第一种 简单的解决方法

针对这个情况,我们有一种简单的解决方法就是,在数据库没有查询该条数据的时候,我们让该key缓存一个 空数据,这样用户再次以该key请求后台的时候,会直接返回null,避免了再次请求数据库。

第二种 布隆过滤器

1)将数据库所有的数据加载到布隆过滤器

2)查布隆过滤器(如果未命中直接结束)

3)查Redis缓存数据(如果未命中走3再到4 )

4)查询数据库

1 使用布隆过滤器处理 90%以上恶意请求.

(布隆过滤器会有一定概率误判,但访问一个数据如果布隆过滤器判断不存在,说明数据一定不存在,就不会请求数据库了,能够有效避免大量无效请求来访问数据库)

2 访问redis缓存.

3 SoftHashMap 内存再次优化处理(软应用会在内存不够时才GC回收利用).

4 均没有才访问db, redis缓存以及SoftHashMap .

,