Redis高级数据结构
一、位图
1.使用场景
存储bool型数据,例如用户一年的签到记录。
最小单位是bit, 取值只能是0或1.
- 各种实时分析.
- 存储与对象ID关联的节省空间并且高性能的布尔信息.
2.统计与查找
统计指令:bitcount;统计指定范围内1的个数
查找指令:bitpos;查找指定范围内出现的第一个0或1
二、HyperLogLog
海量数据的去重统计方案
1.使用场景
用于统计功能,估算,标准误差0.81%
例如:统计网页的访问UV
2.常用指令
pfadd
pfcount
pfmerge
为什么指令要以pf为前缀,因为这个数据结构的发明人Philippe Flajolet, pf是缩写
三、布隆过滤器(Bloom Filter)
1.是什么
可理解为:不怎么精确的Set结构
用途:用于检索一个元素是否在一个集合中。
2.使用场景
新闻客户端推荐系统实现推送去重
3.常用指令
bf.add
bf.exists
四、GeoHash
1.用途
GeoHash算法用于地理位置距离排序(附近的人)
2。原理
内部结构是zset(skiplist)
3. 常用指令
geoadd
geodist
geopos
4.注意
若要使用该算法,最好单独一个redis服务运行,不要集群

浙公网安备 33010602011771号