一、Redis除了String、HashMap、List、Set、Zset这5种常见的基础数据类型,还有一些高级的数据类型:BitMaps、GEO、HeyperLogLog
二、BitMaps:
1、可以理解为boolean [] arrays;
2、为什么Redis有了String类型,还要有BitMaps这种类型?一切为了性能
String类型:计算机存储字符串类型,一般是一个字符2个字节(英文),一个字节8位bit,那么,一个英文字符是16位bit;
BitMaps类型:使用一位bit来存储某些特殊场景,比如某个用户的id是否存在于某个集合中,key=用户id,当用户存在时,value=1,当用户不存在时,value=0;
优势:大大节约内存空间;如果使用String类型,实际有效位数只有最后一位;
3、实现
(1) setbit key index value
其中,index为该key在boolean [] arrays 中的位置(偏移量),value为0或者1
4、使用BitMaps 实现过滤器原理:
(1)布隆过滤器,是一种算法,用来判断一个元素是否在一个集合种;
(2)这种算法由一个二进制数组和一个Hash算法组成,是一种概率型的算法;
(3)这种算法有一个作用:判断某个元素是否在某个集合里面;