社区
其他技术讨论专区
帖子详情
布隆过滤器是如何解决缓存穿透问题的
weixin_38066328
2019-08-20 01:21:36
请问布隆过滤器(Bloom Filter)是如何解决缓存穿透(cache penetration)问题的?
...全文
273
2
打赏
收藏
布隆过滤器是如何解决缓存穿透问题的
请问布隆过滤器(Bloom Filter)是如何解决缓存穿透(cache penetration)问题的?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38092066
2019-08-20
打赏
举报
回复
实际项目上没用过,应该是构造一个布隆过滤器放入存储层全部数据,如果缓存找不到过下布隆过滤器,没查到那一定不存在在存储层,查到再去存储层查。但是没办法删除数据这个不好解决,估计使用场景也有限吧。
weixin_38088019
2019-08-20
打赏
举报
回复
缓存穿透应该是 当数据库中没有某个key对应的value时,缓存中也不会有该value的缓存。所以大量的对该value的查询该的请求会绕过缓存,直接查询数据库。 缓存中一般存的是 key+value ,但是布隆过滤器却可以告诉你 key 对应的value在数据库中存不存在,如果不存在就不用查询数据库了。 拿redis为例子: 请注意,用 redis 也可以做到判断 key 对应的value 在数据库中存不在,那就是把数据库里的所有value对应的key都储存在redis 中,而value可以为空,然后判断下key.IsExists()就可以了,但是这无疑会浪费大量空间,因为存储了数据库中所有的key。而且这也不符合缓存的初衷:咱不能暴力的把所有key都存下来,而是查询了啥key,我们缓存啥key。 而布隆过滤器是一种非常高效的数据结构,把所有数据库的value对应的key 存储到布隆过滤器里,几乎不消耗什么空间,而且查询也是相当的快!但是请注意,它只能判断 key 是否存在(而且会有一定的误差)。 所以一个查询先通过布隆顾虑器判断key是否存在(key 对应的value是否存在数据库中),如果不存在直接返回空就好了。 那么布隆过滤器是怎么做到几乎不消耗空间来储存所有的key,并快速判断特定的key是否存在呢? 其实原理很简单,布隆过滤器 只是一个 byte数组,再加上几个映射函数。 每个key 都通过一系列映射函数,得到一系列的的值k,然后在这个byte数组上的把k下标的值变成1。 当要判断key是否存在时,通过映射函数映射得到的一系列k,查看byte数组相应下标k对应的值是否为1,如果有一个不为1,那么一定不存在。如果都是1 ,那么可能存在。为什么可能而不是一定呢?因为这是一个误差问题,有可能别的key把某个k的位置变成了1,key越多时,误差越大。但是放心不会很大的,这是可以控制的,byte数组越长,误差越小。
redis使用
布隆过滤器
解决
缓存穿透
- 面试宝典
以上代码示例使用了Java语言,通过Redis和
布隆过滤器
解决
了
缓存穿透
问题
。在示例中,我们创建了一个
布隆过滤器
(使用BitSet实现),并将所有可能的查询键值添加到
布隆过滤器
中。在查询缓存之前,先通过
布隆过滤器
...
彻底理解
布隆过滤器
怎么
解决
缓存穿透
问题
在谈
布隆过滤器
之前,需要先了解Bitmaps,它是Redis的一种高级数据结构。定义:Bitmaps(位图)是一种数据结构,用于表示一个由二进制位(bit)组成的集合,每个二进制位的值可以是 0 或 1,通常用于表示某些状态或者...
Java代码示例:使用
布隆过滤器
解决
redis
缓存穿透
问题
然后,在进行查询之前,先检查
布隆过滤器
,如果
布隆过滤器
认为该键不存在,那么...通过
布隆过滤器
的使用,我们可以在查询之前快速过滤掉无效的键,避免了对底层数据源的不必要查询,从而
解决
了 Redis
缓存穿透
问题
。
布隆过滤器
解决
缓存穿透
问题
这里针对
缓存穿透
并使用
布隆过滤器
解决
。
缓存穿透
就是有心用户利用缓存和数据库都必不存在的数据来发送恶意请求,从而绕过缓存,直接访问数据库,最终导致数据库崩溃的
问题
。 这是一个通用的
问题
,关键就在于我们...
布隆过滤器
解决
Redis
缓存穿透
一、Redis
缓存穿透
...三、
布隆过滤器
解决
缓存穿透
3.1 什么情况下需要
布隆过滤器
先来看几个比较常见的例子 字处理软件中,需要检查一个英语单词是否拼写正确 在 FBI,一个嫌疑人的名字是否已经.
其他技术讨论专区
473
社区成员
791,200
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章