首页 > 数据库 >布隆过滤器与Redis的BitMap之区别

布隆过滤器与Redis的BitMap之区别

时间:2023-01-07 22:36:03浏览次数:45  
标签:误判 Redis 布隆 BitMap key 过滤器 数据

 

布隆过滤器

特点:占用空间更小; 可以用来判断一个数据是否存在;
布隆过滤器说有,那么该数据不一定,但是布隆说没有一定没有;
优点:节省空间 ;
缺点:
  1.会出现误判;
  解决误判的方式一:在布隆过滤器初始化的时候给一个相对大的储存空间,这样误判率会降低 , 但是相反也会更占用空间;
  解决误判的方式二:增加hash函数的计算个数 , 但是cpu计算时间会更长;
  2.只能重建不能删除,因为会殃及别的key;
  3.不能储存某一个具体的key数据,只能放key对应的hash函数值;

  4. 不能直接取出具体数据;

应用场景:

主要应用于大规模数据下不需要精确过滤的场景,如检查垃圾邮件地址,爬虫URL地址去重,解决缓存穿透问题等;

BitMap

特点: Bit-map的基本思想就是用一个bit位来标记某个元素对应的Value,而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。

但是储存到bitmap中的数据要求是唯一且不重复的;

优点:

  1.节省空间;

  2.运算效率高,不需要进行比较和移位;

  3.能够直接将id数据存储到布隆过滤器中; 同时能存也能取出;

  4.不会出现误判;

  5.能够直接从bitmap中删除数据,不需要重建,所以比较方便;

缺点:

  1. 所有的数据不能重复。即不可对重复的数据进行排序和查找;

  2. 只有当数据比较密集时才有优势;

应用场景:

表示连续(或接近连续,即大部分会出现)的关键字序列的状态(状态数/关键字个数 越小越好);

标签:误判,Redis,布隆,BitMap,key,过滤器,数据
From: https://www.cnblogs.com/gcm-Ming/p/17033728.html

相关文章

  • 工作场景中的Redis主从不一致
    背景某种类型页面的数据缓存时间是6分钟,上沙盒之后,发现在该类型页面下不同的实际页面的数据有些展现,有些不展现,此外,刚刚展现的同一个页面刷新后数据就不展现了,再刷新又展......
  • Redis查询之RediSearch和RedisJSON讲解
    目录1Redis查询1.1RedisMod介绍1.2安装Redis1.3RediSearch+RedisJSON安装1.3.1下载安装1.3.2修改配置1.4RedisJSON操作1.4.1基本操作1.4.1.1保存操作JSON.SET1.4.......
  • Redis
    Redis安装1、Redis官网下载2、tarzxvfredis目录-C/usr/local3、安装gccyuminstallgcc-c++4、编译(在/usr/local/redis目录)make5、执行(进入src目录)makei......
  • Linux:使用snap安装Redis
    文档官网​​https://snapcraft.io/​​红帽Linux平台下安装教程​​https://snapcraft.io/docs/installing-snap-on-red-hat​​搜索应用​​https://snapcraft.io/se......
  • 【Redis技术探索】「数据迁移实战」手把手教你如何实现在线+离线模式进行迁移Redis数
    从实战出发使用RedisShake进行Redis数据在线+离线模式迁移指南RedisShake基本介绍​​RedisShake​​是基于​​redis-port​​基础上进行改进的是一款开源的Redis迁移工具,......
  • 【Redis技术探索】「数据迁移实战」手把手教你如何实现在线+离线模式进行迁移Redis数
    从实战出发使用RedisShake进行Redis数据在线+离线模式迁移指南RedisShake基本介绍RedisShake是基于redis-port基础上进行改进的是一款开源的Redis迁移工具,支持Cluster......
  • redis事件通知设置
    概述开发让给redis集群加个key过期通知的配置,特此了解这个配置事件通知redis事件通知(notify-keyspace-eventsEx)Keyspace通知使客户端可以通过订阅频道来接收那些以......
  • 验证功能访问Redis的次数和命令
    背景公司内部在进行性能调优,调优有多个方法.应用Redis方面主要的调优有:1.进行redis键值对大小的处理.2.进行redis键值对过期时间的处理.3.减少连接数,减少网络......
  • Redis使用zset集合根据分值实现分页功能
    自己去看代码吧@ComponentpublicclassQueryPage{@AutowiredprivateStringRedisTemplatestringRedisTemplate;privatefinalStringKEY="query:sh......
  • redis工具类
    操作Redis的工具类importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.data.redis.core.RedisTemplate;importorg.springfr......