使用布隆过滤器 (Bloom Filter) 完成去重

最近遇到的一个需求:

在为用户推荐资讯时,不能推荐重复的内容。

方案一:

创建一个存已读记录的数据表,判断表中是否存在记录。因为用户产生的已读数据量很大,频繁查询数据库,性能很差。

方案二:

将用户已读记录全部放到redis中,从内存中读取速度会快些,但是数据量大,内存这种稀缺资源不能浪费。

方案三:

使用布隆过滤器,完美解决速度与存储空间的问题。