redis bitmaps redisbitmap功能

布隆过滤器使用布隆过滤器判断元素是否存在,是一种低空间成本的方式 。布隆过滤器是1970年由布隆提出的,它实际上是一个很长的二进制向量,和一系列随机映射函数 。
布隆过滤器内部维护一个bitArray(位数组),开始所有数据为0,当一个元素过来时,能过多个哈希函数(hashhashhash3)计算不同的hash值,并通过hash值找到bitArray的下标 , 将里面的值改为由0变为1 。
布隆过滤器,主要需实现的目标是 ,  在指定的数据个数范围内,满足误判率在设定的范围内,误判率太高的话,无法起到过滤数据的情况,误判率不能为0 。
假设布隆过滤器中的hash function满足simple uniform hashing假设:每个元素都等概率地hash到m个slot中的任何一个,与其它元素被hash到哪个slot无关 。
布隆过滤器(Bloom Filter)是1970年由[布隆]提出的 。它实际上是一个很长的[二进制]向量和一系列随机映射函数 。布隆过滤器可以用于检索一个元素是否在一个集合中 。
这说明了若想保持某固定误判率不变,布隆过滤器的bit数m与被add的元素数n应该是线性同步增加的 。三 如何设计bloomfilter 此概率为某bit位在插入n个元素后未被置位的概率 。
bitmap能存放的最大数据是多少直接存放会导致超限. 2^32 =4294967296 (10位)= 512MB,约40亿.所以可以采取分段存储:国内的手机号大部分是以 13, 14,15,16 ,  17,18, 19 等开头,前2位一般都是固定的 。
ARGB_8888:每个通道值采8bit来表示,每个像素点需要4字节的内存空间来存储数据 。该方案图片质量是最高的 , 但是占用的内存也是最大的;ARGB_4444:每个通道都是4位,每个像素占用2个字节,图片的失真比较严重 。
天记录1000W用户的活跃统计数据 , 只需要10000000/8/1024/1024 ≈2M 。
redis常用数据结构介绍和业务应用场景分析1、String 字符串 字符串类型是 Redis 最基础的数据结构,首先键都是字符串类型,而且 其他几种数据结构都是在字符串类型基础上构建的,我们常使用的 set key value 命令就是字符串 。
2、应用场景:排行榜,带权重的消息队列 描述:Bitmaps这个“数据结构”可以实现对位的操作 。把数据结构加上引号主要因为:Bitmaps本身不是一种数据结构 ,  实际上它就是字符串 ,但是它可以对字符串的位进行操作 。
【redis bitmaps redisbitmap功能】3、数据结构,可以存储一些集合性的数据 。比如在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合 。

    推荐阅读