今天说一下redis当中的布隆过滤器
布隆过滤器简单说就是你给一个值,它可以告诉你是一定存在或者可能存在。当它说这东西不在的时候,一定是不存在的;但是如果说在的话,这种东西就不一定存在。
其应用场景通常是当线上服务降级,进行简单的权限验证的时候
其原理简单说就是位操作,具体如下:
redis当中的布隆过滤器的底层实现就是一个很大的数组和n多个哈希函数
当向指定的key中添加指定的val时,redis会用多个哈希函数来对val取值
对于每一个hash值,将其映射到底层位数组当中不同的位上,并置1、
当查询的时候执行的操作也是类似的,当val所有hash值都为1的时候,表示这个val可能存在;但是当有一个hash值的底层数组不全为1时,这个val肯定不存在
由于其有可能误判,redis里面可以通过如下命令进行精度限定:
bf.reserve key error_rate capacity
阅读(7020) | 评论(0) | 转发(0) |