Redis3种特殊数据结构详解

1、Bitmap位存储
Bitmap存储的是连续的二进制数字(0和1)。
你可以将Bitmap看作是一个存储二进制数字(0和1)的数组,数组中每个元素的下标叫做offset(偏移量)。
应用场景,需要保存状态信息(0/1即可表示)的场景。举例,用户签到情况、活跃用户情况、用户行为统计(比如是否点赞过某个视频)。


2、HyperLogLogs基数统计
HyperLogLog是一种有名的基数计数概率算法,基于LogLogCounting(LLC)优化改进得来,并不是Redis特有的,Redis只是实现了这个算法并提供了一些开箱即用的API。
Redis提供的HyperLogLog占用空间非常非常小,只需要12k的空间就能存储接近2^64个不同元素。
基数计数概率算法为了节省内存并不会直接存储元数据,而是通过一定的概率统计方法预估基数值(集合中包含元素的个数)。因此,HyperLogLog的计数结果并不是一个精确值,存在一定的误差(标准误差为0.81%)。
应用场景,数量量巨大(百万、千万级别以上)的计数场景。举例,热门网站每日/每周/每月访问ip数统计、热门帖子uv统计。


3、Geospatial地理位置
Geospatialindex(地理空间索引,简称GEO)主要用于存储地理位置信息,基于SortedSet实现。
通过GEO我们可以轻松实现两个位置距离的计算、获取指定位置附近的元素等功能。
GEO底层是SortedSet,你可以对GEO使用SortedSet相关的命令。
应用场景,需要管理使用地理空间数据的场景。举例,附近的人。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值