redis布隆过滤器

  • 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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容