个人随笔
目录
20240605架构学习: 布隆过滤器在亿级流量电商系统中的作用
2024-06-05 22:37:18

布隆过滤器是采用一个很长的二进制数组,通过一系列的Hash函数来确定数据是否存在。其能够完全确定不存在,只能确定可能存在,可以用来防止恶意访问导致的缓存穿透问题。

因为是可能存在的,所以我们可以进行如下操作来减少误判

增加二进制数组位数
增加Hash次数

Java运用布隆过滤器

redission-all 建议误判率不要小于1%,不然会增加Hash的次数,增加CPU的负担

项目中的使用流程

1、应用启动时,初始化布隆过滤器
2、用户发来请求时,判断布隆过滤器是否包含编号
3、布隆过滤器不包含编号时,返回数据不存在消息
4、包含编号时,读取Redis的缓存数据
5、Redis缓存数据不存在时,读取数据库,刷入Redis缓存中

假如商品被删除了该怎么

布隆过滤器因为某一位二进制可能被多个编号Hash引用,因此布隆过滤器无法直接处理删除数据的情况

解决方案1:定时异步重建布隆过滤器
解决方案2:计数Bloom Filter

 9

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2