[ Redis16篇]BitMap布隆过滤器
2021/12/6 2:17:27
本文主要是介绍[ Redis16篇]BitMap布隆过滤器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.什么是布隆过滤器
本质上布隆过滤器是一种数据结构,特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。
相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,
但是缺点是其返回的结果是概率性的,而不是确切的。
实现原理:
布隆过滤器是一个 bit 向量或者说 bit 数组,长这样:
2.使用场景
- 解决数据库缓存击穿(比如受到攻击服务器时,会构建大量不存在于缓存中的key向服务器发起请求,在数据量足够大的时候,频繁的数据库查询会导致宕机);
- 去重(比如:爬给定网址的时候对已经爬取过的URL去重);
- 文章是否已读 (比如:新闻推荐系统)
- 邮箱的垃圾邮件过滤、黑名单等;
综上都是基于判断集合中元素是否存在使用的。
3.存储什么样的数据 ?
存储每个元素只能是 0 或者 1,每个元素都只占用 1 bit 。
比如:一个100万的位数组占用大小应为
1000000Bit / 8 = 125000 Byte = 125000/1024 kb ≈ 122kb
这篇关于[ Redis16篇]BitMap布隆过滤器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-21redisinsight-v2
- 2024-02-26Typed property App\Api\Mapper\GamePropsConfigMapper::$apiRedis must not be accessed before initia-icode9专业技术文章分享
- 2024-02-21redisson getlock
- 2024-02-20redis config
- 2024-02-20redis leaderboard
- 2024-01-23缓存选型:Redis or MemCache
- 2024-01-22面试官:Redis持久化能关吗?怎么关?
- 2024-01-21Redis压测工具redis-benchmark-icode9专业技术文章分享
- 2024-01-19这才是你应该了解的Redis数据结构!
- 2024-01-18Redis系列:使用 Redis Module 扩展功能