Redis 除了常用数据类型 string、hash、list、set、zset 等,还有一些不常用的数据类型,比如 bitmaps(位图), hyperloglogs(基数统计) 和 geospatial(地理空间)三种特殊数据类型。
bitmaps
现代计算机用二进制(位) 作为信息的基础单位, 1个字节等于8位。
Redis提供了Bitmaps这个“数据类型”可以实现对位的操作。
hyperloglogs
Redis 在 2.8 版本以后,加入了对基数的统计支持 hyperloglogs。
基数
对于一个数组中的元素,不重复元素的个数,就称为基数。
- {1,2,2,3,5,5} 基数是 4
- {1,3,3,3,3,2} 基数是 3
场景
网站的 UV (用户访问量:一个人多次访问同一个网站,算一次访问量)
缺点
hyperloglogs 不是精确值,有 0.81% 的误差,如果对数据准确性要求很高,不适用。
geospatial
Redis 在 3.2 版本以后,加入了地理位置的支持 geopspatial。
geopspatial 可以通过经纬度推算两地之间的距离。