Redis 三种特殊数据类型 geospatial,Hyperloglog,Bitmaps

其实三种特殊数据类型还是由五大数据类型实现的,方便用户使用

一、Geospatial 类型(地理位置存储)本质还是一个集合
geoadd key 经度 纬度 名称 两极无法直接添加
geopos 获取集合里指定位置的经纬度
geodist 位置一 位置二 km/m 得到两个指定位置的距离(打车软件或地图软件里距离计算)
georadius 经度 纬度 半径 km 以给定经纬度为中心在集合内查找半径内的元素
georadiusbymember 找出位于集合内某位置指定半径内的其他位置(QQ里附近的人)
geohash 返回经纬度的字符串。

二、Hyperloglog (一种数据结构)
是一种用于基数统计算法的数据结构:占用内存少,效率高。
基数:列表里不重复元素的个数

应用:网页中的实际访问量:一个人多次访问只能算做一次。传统的实现是
用一个Set集合存储访问过的用户的id则访问量为集合的大小。但是访问量很大的时候,这样处理十分消耗内存,所以有了hyperloglog。
hyperloglog 并不是十分完美的,在某种情况下有0.81%的错误率

PFADD key 232 添加元素
PFCOUNT key 返回集合中实际的大小(已自动去重)
PFMERGE 求两个集合的并集

应用:统计+UV任务

三、Bitmaps 位图(适用于位存储)
如果信息只有两种状态则适用于Bitmaps
如:统计用户活跃不活跃,登录未登录,打卡未打卡
示例:

setbit mahao 0 1 第一天打卡
setbit mahao 1 0 第二天未打卡
getbit mahao 2 第二天状态
bitcount mahao 计算1的数量(共打卡几天)

Bitmaps 存储有两个状态的信息十分便捷。
后面继续更新Redis事务操作

你可能感兴趣的:(Redis,redis)