golang 实现bloom filter

心不动则不痛 提交于 2020-01-10 12:58:52

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

今天下午不知怎么了,突然脑子里出现了bloom filter这个东西。做爬虫这么久了,还没找到过应用场景,就想着自己实现一个玩玩。原理很简单. 先定义一个n长的数组, 每位都为0, 添加记录时进行k次hash, 再将hash出的int % n作为index, 将对应index位设置成1. 每次判断时都去做同样的操作,判断是否每一位都是1,只要有一位不是1,则这条记录肯定不存在. 但如果全是1也不一定是存在的。

bloom filter原理描述网上太多,直接上链接 https://blog.csdn.net/hguisu/article/details/7866173

根据原理实现了简单的支持redis, 内存, 文件三种工作模式的bloom filter.

https://github.com/lujinda/simplebloom

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!