Redis中三种特殊数据类型详解
Redis除了5种基础数据类型,还有三种特殊的数据类型,分别是 HyperLogLogs(基数统计), Bitmaps (位图) 和 geospatial (地理位置)。
HyperLogLogs(基数统计)
Redis 2.8.9 版本更新了 Hyperloglog 数据结构!
- 什么是基数?
举个例子,A = {1, 2, 3, 4, 5}, B = {3, 5, 6, 7, 9};那么基数(不重复的元素)= 1, 2, 4, 6, 7, 9; (允许容错,即可以接受一定误差)
- HyperLogLogs 基数统计用来解决什么问题?
这个结构可以非常省内存的去统计各种计数,比如注册 IP 数、每日访问 IP 数、页面实时UV、在线用户数,共同好友数等。
- 它的优势体现在哪?
一个大型的网站,每天 IP 比如有 100 万,粗算一个 IP 消耗 15 字节,那么 100 万个 IP 就是 15M。而 HyperLogLog 在 Redis 中每个键占用的内容都是 12K,理论存储近似接近 2^64 个值,不管存储的内容是什么,它一个基于基数估算的算法,只能比较准确的估算出基数,可以使用少量固定的内存去存储并识别集合中的唯一元素。而且这个估算的基数并不一定准确,是一个带有 0.81% 标准错误的近似值(对于可以接受一定容错的业务场景,比如IP数统计,UV等,是可以忽略不计的)。
- 相关命令使用
127.0.0.1:6379> pfadd

Redis提供三种特殊数据类型:HyperLogLogs用于基数统计,Bitmaps用于位存储,geospatial处理地理位置数据。HyperLogLogs以低内存消耗估算基数,适合统计唯一元素。Bitmaps操作二进制位记录状态,如用户活跃度。geospatial支持地理位置信息处理,如计算距离。相关命令包括geoadd, geopos, geodist等。"
127545348,13124950,ArcGIS Pro 工程管理实用技巧,"['GIS软件', 'arcgis', '工程管理']
最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



