遇到的问题
在业务中,我需要给每个用户保存1w条浏览记录,之后每一次的返回值都要和历史记录做一个去重,即保证用户不会重复看到同一篇文章....布隆过滤器
介绍
以下摘自维基百科:
布隆过滤器(英语:Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。...它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。
说直白一点就是:布隆过滤器用自己的算法,实现了快速的检索一个元素是否在一个较大的元素列表之中....我的解决方案
1. hbase部分
hbase负责存储用户浏览记录的原始数据,只保存用户浏览的文章的id或者url,这里以id为例....布隆过滤器部分
主要是添加以及查询两个操作,从hbase拿到数据之后,构造过滤器,然后对当前返回的10条内容进行判重.之后将新的10条内容加入过滤器,再次写入redis.
流程图
?