大数据BitMap的实现

Posted 兔子爱读书

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据BitMap的实现相关的知识,希望对你有一定的参考价值。

数据处理需求

假设有一个4G的Id数据,和一个800M的Id数据,要互相遍历,时间开销很大。

采用比特图解决

比特图能成功将4G数据压缩到1-5k左右。

内存占用

如果一条数据的存放地址用32 比特(bit)来表示 ,等于4 字节(byte)内存;那么一亿条数据,要占用一亿个地址,等于占用4亿字节的内存,等于381MB (1MB=1024KB=1024*1024B)。——可接受
如果一条数据的存放地址用64 比特(bit)来表示 ,等于8字节内存;那么一亿条数据,要占用762MB内存。

Redis限制

Redis中的位图(bitmap)属于 string 数据类型,一个字符串类型的值最多能存储 512 MB 的内容,每个字符串由多个字节组成,每个字节又由 8 个 Bit 位组成。位图结构正是使用“位”来实现存储的,它存储上限为2^32 。

以上是关于大数据BitMap的实现的主要内容,如果未能解决你的问题,请参考以下文章

大数据BitMap的实现

大数据BitMap的实现

货拉拉大数据对Bitmap的探索与实践(下)

货拉拉大数据对BitMap的探索与实践(上)

Redis使用BitMap用户签到统计BitMap解决缓存击穿方案 及 UV(HyperLogLog) 统计页面访问量 与 独立访问量

拿走不谢大数据高效查询神器--bitmap