判定一个字符串是否存在
1.使用word文档时,判断某个单词是否拼写正确
2.网络爬虫程序,不去爬相同url页面
3.垃圾邮件过滤算法如何设计
4.缓存崩溃后造成的缓存击穿
5.一个嫌疑人的名字是否已经在嫌疑名单上
布隆过滤器原理:当一个元素被加入集合时,通过K个Hash函数将这个元素映射成一个位数组中的K个点,把它们置为1.
检索时,我们只要看看这些点是不是都是1就(大约)知道集合中有没有它了。如果这些点有任何一个0,则被检元素一定不在,
如果都是1,则被检元素很可能在。
Hash函数
常见的应用比较广的hash函数有MD5,SHA1,SHA256,一般用于信息安全方面,比如签名认证和加密等。 比如我们传输文件时习惯用对原文件内容计算它的MD5值,生成128 bit的整数,通常我们说的32位MD5值, 是转换为HEX格式后的32个字符
在布隆过滤器算法中,不能因为有碰撞的可能,即添加一个元素后,如果设置了k个bit为1,且某个bit位碰撞后,我们删除该元素时恰恰设置该bit位为0,
则碰撞的元素无法判断,那么不能在布隆过滤器中删除元素