布隆过滤器早在1970就提出了,一直沿用到现在,它主旨是采用一个很长的二进制数组,并通过一系列的hash函数来确定该数据是否存在
布隆过滤器原理:创建长度为100的数组,全值都为0。创建hash函数(范围必须是数组的长度,足够散列)
存入数据,进行多次hash,对返回的hash值修改为1
查询数据时,同样进行hash,对比长度100的数组,其值为1时存在,其值为0时一定不存在
优点:
二进制组成的数组,占用内存极少,并且插入和查询速度都足够快
缺点:
随着数据的增加,误判率会增加;还有无法判断数据一定存在,另外还有一个重要缺点,无法删除数据
每个值都为1,则可能存在
有值不为1,则一定不存在
【数据不存在,一定是不存在的。数据存在,可能存在】
实现布隆过滤:
Redis布隆过滤器详解_redis布隆过滤器使用_怪 咖@的博客-优快云博客
php间接redis: