bloom:Go包实现Bloom过滤器

时间:2024-02-24 08:06:11
【文件属性】:

文件名称:bloom:Go包实现Bloom过滤器

文件大小:13KB

文件格式:ZIP

更新时间:2024-02-24 08:06:11

go bloom bloom-filters GoGo

布隆过滤器 布隆过滤器是一组n个项目的表示,主要要求是进行成员资格查询; 即项目是否是集合的成员。 布隆过滤器具有两个参数: m (最大大小(通常代表集合的基数的较大倍数))和k (集合元素上的哈希函数的数量)。 (实际的哈希函数也很重要,但这不是此实现的参数)。 Bloom过滤器由支持; 通过将散列函数的每个值(模m )设置为1,可以在过滤器中表示键。 通过测试是否设置了散列函数的每个值(再次取模m )上的位来完成集合成员资格。 如果是这样,则该项目在集合中。 如果该项目实际上在集合中,则Bloom过滤器将永远不会失败(真正的阳性率为1.0); 但很容易出现误报。 艺术是正确选择k和m 。 在此实现中,使用的哈希函数是 ,这是一种非加密哈希函数。 此实现接受用于设置和测试的密钥,为[]byte 。 因此,添加一个字符串项"Love" : n := uint(1000) filter := bloom.New(20*n, 5) // load of 20, 5 keys filter.Add([]byte("Love")) 同样,要测试"Love"是否盛开: if filt


【文件预览】:
bloom-master
----.gitignore(274B)
----bloom.go(10KB)
----Makefile(6KB)
----bloom_test.go(12KB)
----.travis.yml(669B)
----LICENSE(1KB)
----.github()
--------FUNDING.yml(292B)
----README.md(3KB)
----VERSION(6B)

网友评论