阴阳布隆过滤

1 背景

运营活动中,有场景针对新用户发营销,老用户不能参与活动,很自然会将老用户放入一个布隆过滤器的“黑名单”。但布隆过滤器存在假阳性的问题,虽然机率很低,但根据墨菲定律,只要量够大就必定出现。亟需一个方案用最小的成本(时间、空间)应对假阳性。

2 解决方案

训练两个布隆过滤器:

  1. 白名单过滤器,放入新用户的uid;
  2. 黑名单过滤器,放入老用户的uid;

请求路径:
阴阳布隆过滤

假阳性是小概率事件,假设1%(很高了,花点内存还能降到更低),最坏情况是程序判断,到了这一步已经是万分之一的概率。
假设随手所有用户一同参加,也不过是5000次程序校验,绝对可以接受。

Reference

[1] 详解布隆过滤器的原理,使用场景和注意事项

posted @ 2020-03-30 10:28  Casaa  阅读(156)  评论(0编辑  收藏  举报