美文网首页高级专题
redis布隆过滤器

redis布隆过滤器

作者: realPeanut | 来源:发表于2020-10-26 21:59 被阅读0次
    • redis4+版本后可以以插件的形式使用布隆过滤器

    source : https://github.com/RedisBloom/RedisBloom

    git clone https://github.com/RedisBloom/RedisBloom
    cd RedisBloom
    make
    redis-server --loadmodule redisbloom.so
    

    当然也可以在配置文件中进行配置

    • 创建布隆过滤器
    bf.reserve key(键) error_rate(期望错误率) capacity(预期添加到布隆过滤器中的数目)
    
    • 下面演示相关操作
    1. 创建布隆过滤器
    bf.reserve realpeanut 0.01 3
    //output OK
    //时间复杂度O(1)
    //创建键为realpeanut 期望误判率为0.01 预计容量为3
    

    key:可以在其中找到过滤器的键

    error_rate:误报的期望概率。这应该是介于0和1之间的十进制值。例如,对于期望的误报率0.1%(1000中为1),error_rate应该设置为0.001。该数字越接近零,则每个项目的内存消耗越大,并且每个操作的CPU使用率越高。

    capacity:您打算添加到过滤器中的条目数。添加超过此数量的项目后,性能将开始下降。实际的降级将取决于超出限制的程度。随着条目数量呈指数增长,性能将线性下降。

    1. 添加元素
    bf.add key value
    //output value 不存在返回1 存在返回0
    //时间复杂度 O(logN)
    
    1. 批量添加
    bf.madd key value ...
    // O(logN)
    //output An array of booleans (integers)
    
    1. 添加元素,如果过滤器不存在则创建
    bf.insert key ITEMS value1 value2 value3 ...
    //向 key中添加多个 value key不存在则创建
    
    bf.insert key CAPACITY 10000 ITEMS value 
    //向key中添加value不存在则创建预期大小为10000的过滤器
    
    1. 判断value是否存在
    bf.exists key value  //判断 1个值
    bf.mexists key value... //判断多个值
    
    1. 查看过滤器信息
    bf.info key
    

    相关文章

      网友评论

        本文标题:redis布隆过滤器

        本文链接:https://www.haomeiwen.com/subject/labzmktx.html