Go 中的 Cuckoo Filter 实现,比 Bloom Filters 更好(未维护)
Cuckoo 过滤器提供了动态添加和删除元素的灵活性。Cuckoo 过滤器基于 Cuckoo 哈希(因此称为 Cuckoo 过滤器)。本质上,它是一个 Cuckoo 哈希表,存储每个键的指纹。Cuckoo 哈希表可以高度压缩,因此 Cuckoo 过滤器可以占用比常规 Bloom 过滤器更少的空间,适用于需要低误报率(< 3%)的应用程序。有关算法和参考文献的详细信息,请参阅原始研究论文《Cuckoo Filter: Better Than Bloom》,作者为 Bin Fan、Dave Andersen 和 Michael Kaminsky(https://www.cs.cmu.edu/~dga/papers/cuckoo-conext2014.pdf)。
Insert(item): 将项插入到过滤器中Lookup(item): 如果项已在过滤器中,则返回;(可能返回像 Bloom 过滤器那样的假阳性结果)Delete(item): 从过滤器中删除给定的项。请注意,要使用此方法,必须确保此项已在过滤器中(例如,基于外部存储的记录);否则,可能会删除一个假的项。Count(): 返回当前过滤器中项的总数暂无开放 Issues,或尚未同步最近议题。