那些年向前冲 大厂二面:Redis的分布式布隆过滤器是什么原理?( 二 )
在使用bf.add命令添加元素之前 , 使用bf.reserve命令创建一个自定义的布隆过滤器 。 bf.reserve命令有三个参数 , 分别是:
key:键error_rate:期望错误率 , 期望错误率越低 , 需要的空间就越大 。 capacity:初始容量 , 当实际元素的数量超过这个初始化容量时 , 误判率上升 。比如:
>bf.reserveone-more-filter0.00011000000OK如果对应的key已经存在时 , 在执行bf.reserve命令就会报错 。 如果不使用bf.reserve命令创建 , 而是使用Redis自动创建的布隆过滤器 , 默认的error_rate是0.01 , capacity是100 。
布隆过滤器的error_rate越小 , 需要的存储空间就越大 , 对于不需要过于精确的场景 , error_rate设置稍大一点也可以 。 布隆过滤器的capacity设置的过大 , 会浪费存储空间 , 设置的过小 , 就会影响准确率 , 所以在使用之前一定要尽可能地精确估计好元素数量 , 还需要加上一定的冗余空间以避免实际元素可能会意外高出设置值很多 。 总之 , error_rate和capacity都需要设置一个合适的数值 。
布隆过滤器的应用解决缓存穿透的问题一般情况下 , 先查询缓存是否有该条数据 , 缓存中没有时 , 再查询数据库 。 当数据库也不存在该条数据时 , 每次查询都要访问数据库 , 这就是缓存穿透 。 缓存穿透带来的问题是 , 当有大量请求查询数据库不存在的数据时 , 就会给数据库带来压力 , 甚至会拖垮数据库 。
可以使用布隆过滤器解决缓存穿透的问题 , 把已存在数据的key存在布隆过滤器中 。 当有新的请求时 , 先到布隆过滤器中查询是否存在 , 如果不存在该条数据直接返回;如果存在该条数据再查询缓存查询数据库 。
黑名单校验发现存在黑名单中的 , 就执行特定操作 。 比如:识别垃圾邮件 , 只要是邮箱在黑名单中的邮件 , 就识别为垃圾邮件 。 假设黑名单的数量是数以亿计的 , 存放起来就是非常耗费存储空间的 , 布隆过滤器则是一个较好的解决方案 。 把所有黑名单都放在布隆过滤器中 , 在收到邮件时 , 判断邮件地址是否在布隆过滤器中即可 。
总结今天老顾带着大家了解了redis布隆过滤器的原理 , 以及应用场景;希望能给小伙伴带来帮助 , 谢谢!!!
---End---
老顾的微服务网关分享课程 , 请大家多多支持
推荐阅读
a、dubbo如何处理业务异常 , 这个一定要知道哦!
b、企业级SpringBoot应用多个子项目配置文件规划、多环境支持(一)
c、企业级SpringBoot应用多个子项目配置文件规划、多环境支持(二)
d、企业级SpringBoot应用多个子项目配置文件之配置中心(三)
e、利用阿里开源工具进行排查线上CPU居高问题
f、阿里二面:如何快速排查死锁?如何避免死锁?
g、微服务分布式架构中 , 如何实现日志链路跟踪?
h、网关如何聚合各个微服务的接口文档?
i、Kubernetes之POD、容器之间的网络通信
j、K8S中的Service的存在理由
k、企业微服务项目如何进入K8S的全过程
l、阿里开源项目Sentinel限流、降级的统一处理
1、基于RocketMq的SpringCloudStream框架实战入门
2、如何搭建消息中间件应用框架之SpringCloudStream
3、面试必备:网关异常了怎么办?如何做全局异常处理?
4、Gateway网关系列(二):SpringCloudGateway入门实战 , 路由规则
5、Gateway网关系列开篇:SpringCloud的官方网关Gateway介绍
6、API网关在微服务架构中的应用 , 这一篇就够了
7、学习Lambda表达式看这篇就够了 , 不会让你失望的哦(续篇)
8、Lambda用在哪里?几种场景?
9、为什么会出现Lambda表达式 , 你知道吗?
10、不说“分布式事务”理论 , 直接上大厂阿里的解决方案 , 绝对实用
11、女程序员问到这个问题 , 让我思考了半天 , Mysql的“三高”架构
推荐阅读
- 罗云熙|盘点那些古装帅,现代装却很“丑”的3位男神,罗云熙任嘉伦上榜
- 大众报业·海报新闻|盘点那些低价转让的公司,长城宽带100万元打包转让
- 【】长城宽带100万元打包转让 盘点那些低价转让的公司
- 时尚广州|T恤的标语你了解过吗?揭秘衣服上那些奇怪的字句
- 刘药师话用药|有一种健康和美丽,从脚下开始,足部护理那些事儿
- 穿搭日记|那些一眼就让人爱上的明星耳环,便宜的才几百,陈小纭金晨都在戴
- 穿搭|那些乘风破浪的姐姐们,为什么每次都能把职业装穿得美出圈?
- 穿搭■为什么气质上总是输一大截?来看看那些教科书式的穿搭吧,学起来
- 那些年向前冲|三星可能会关闭在天津的电视工厂
- 那些年向前冲|HAVE2020上海高级视听展小记
