布隆过滤器的应用

在一个 App 的登录场景中,有两个重要信息:账号和设备号

设备号标识一个被安装的 App,在 App 安装时生成,如果卸载了重新安装则会生成新的设备号。

假设有个需求,需要检测一个时间窗口内活跃账号和设备比是否正常,如果不在合理范围内则告警提醒。

一般的方案有下面两种:

方案 特点
内存set 优点:性能好,缺点:存储数据有限
数据库 优点:可以存储更多数据,缺点:性能相对差,需要维护数据的清除逻辑

这两种方案各有其优缺点。

那么,如果我既追求性能,又追求存储更多的数据,有办法嘛

于是布隆过滤器就派上用场了。

布隆过滤器的使用也是将数据存储到内存,同时又可以对数据进行压缩,所以能够在保证性能的同时,存储更多的数据。

前提是能容忍一定程度的误判率,而刚好多数业务场景的却不需要那么精准的数据。

如果想在本地内存里维护布隆过滤器,可以使用Guava的实现。

BloomFilter<CharSequence> bloomFilter = Bloo
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值