Bitmap
12/12/25About 1 min
Bitmap
对于这种大数据量去重的场景,我们可以考虑使用位图(Bitmap)。位图可以在不占用太多内存的前提下,解决海量数据的存在性问题,进而实现去重。
Bitmap 是一种用于存储二进制数据的数据结构。简单来说,Bitmap 就是使用二进制位来表示某个元素是否存在的数组。每一位只有两种状态,可以方便地用 0 和 1 来表示存在与不存在。
使用 Bitmap 的话,一个数字只需要占用 1 个 bit。
Bitmap 的常见应用场景如下:
- 去重:如果需要对一个大的数据集进行去重操作,可以使用 Bloom Filter 来记录每个元素是否出现过。比如爬给定网址的时候对已经爬取过的 URL 去重、对巨量的 QQ 号/订单号去重。
- 数据统计:Bitmap 可以用来记录某些特定事件发生的情况,例如某个用户是否登录、某个用户是否点赞过某个视频等。
- 布隆过滤器:布隆过滤器是一种基于 Bitmap 的数据结构,主要用于判断一个元素是否存在于一个大的集合中。相遇 Bitmap,占用的空间更少,但其结果不一定是完全准确的。