我正在写文章和建议。有很多这样的人。想想YouTube视频的建议。为了避免再次建议文章,我想记住特定用户已经看过的文章。我有很多用户,我也想避免历史数据库的无限增长。
每篇文章都有MongoDB ObjectId。我使用Redis和Go语言。
我认为Bloom Filter可以解决这个问题,因为在这种情况下,误报是可以接受的。我希望避免假阴性,但这不是100%必须的。
我不知道在这方面有什么比Bloom Filter更明智的选择。我应该吗?
我在Go中找不到任何针对Redis的Bloom Filter实现。有人能给我一些建议吗?这是最好的选择吗?我如何编写自己的代码?或者是否有任何现有的实现?
发布于 2015-07-22 13:54:42
对于任何偶然看到这篇文章的人来说,如果你在这种情况下使用Redis,那么你可能想要使用它的HyperLogLog feature;Antirez在length here上写了关于它的文章。不需要弄清楚如何在Redis中制作bloom filter,它有一些同样好的内置功能(它还可以告诉你大约有多少项已经插入其中)。
发布于 2019-06-05 03:50:22
正如@jumand提到的,Redis有一个名为RedisBloom的模块,它提供了布隆过滤器、布谷鸟过滤器、Count-Min Sketch和TopK服务。
https://stackoverflow.com/questions/22799443
复制相似问题