遇到的问题
在业务中,我需要给每个用户保存1w条浏览记录,之后每一次的返回值都要和历史记录做一个去重,即保证用户不会重复看到同一篇文章....倒是能存下这么多,但是太影响性能了.
2.时间问题
这个需求对即时性要求还是比较高的,用户两次刷新的间隔可能只有几秒钟,在此期间就要完成历史数据的添加以及过滤....布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。...在redis中存储序列化后的布隆过滤器对象,时间为30分钟,30分钟内用户如果再次访问,直接从redis中获取过滤器,然后进行过滤操作.
3....布隆过滤器部分
主要是添加以及查询两个操作,从hbase拿到数据之后,构造过滤器,然后对当前返回的10条内容进行判重.之后将新的10条内容加入过滤器,再次写入redis.
流程图
?