布隆

redis之布隆过滤器

旧时模样 提交于 2019-12-02 09:43:12
布隆过滤器是什么?   布隆过滤器可以理解为一个不怎么精确的 set 结构,当你使用它的 contains 方法判断某个对象是否存在时,它可能会误判。但是布隆过滤器也不是特别不精确,只要参数设置的合理,它的精确度可以控制的相对足够精确,只会有小小的误判概率 布隆过滤器基本使用   布隆过滤器有二个基本指令,bf.add 添加元素,bf.exists 查询元素是否存在,如果想要一次添加多个,就需要用到 bf.madd 指令。同样如果需要一次查询多个元素是否存在,就需 要用到 bf.mexists 指令。 127.0.0.1:6379> bf.add codehole user1 (integer) 1 127.0.0.1:6379> bf.add codehole user2 (integer) 1 127.0.0.1:6379> bf.add codehole user3 (integer) 1 127.0.0.1:6379> bf.exists codehole user1 (integer) 1 127.0.0.1:6379> bf.exists codehole user2 (integer) 1 127.0.0.1:6379> bf.exists codehole user3 (integer) 1 127.0.0.1:6379> bf.exists codehole

布隆过滤器

岁酱吖の 提交于 2019-11-27 03:55:43
布隆过滤器 Bloom Filter 过滤器的作用:判断元素在还是不在。(如图查询 w 在不在集合中) 布隆过滤器:⼀个很长的二进制向量和一系列随机映射函数。 布隆过滤器可以用于检索一个元素是否在⼀个集合中(如果检测出元素不在集合中,那一定不在;如果检测出元素在集合中,有一定可能判断错误)。 它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。布隆过滤器后面一定要跟一个完备的搜索系统。 判断 C 不存在,一定正确;判断 B 存在,判断错了 案例 1. ⽐特币网络 2. 分布式系统(Map-Reduce) 来源: https://www.cnblogs.com/chaojunwang-ml/p/11343113.html