1.Geospatial
geospatial可以将给定的地理位置信息储存起来,并对这些信息进行操作可用于 实现 获取某个地点的坐标,计算两个地点的直接距离,某个地点坐标多少范围内的地点有哪些等等
相关命令:
geodist 返回两个给定位置之间的距离
geohash 返回geohash对位置进行的编码,用于内部调试,一般用不到
geopos 返回指定member的经纬度信息
georadius 根据半径查找,需要给定中心点数据
georadiusbymember 也是根据半径查找,但是中心点是已经存在的member
zrange 遍历member
zrem 移除member
2.HyperLogLog
是一种概率数据结构,用于计数唯一事物从技术上讲估计一个集合的基数,通常计数唯一项需要使用成比例的内存,因为需要记录使用过的元素,以免多次记录,但是hyperloglog的算法可以用内存换精度,虽然有误差,但是误差小于1%,hyperLogLog占用的内存是固定的,2^64个不同元素,只需要12kb内存,在允许容错的情况下,hyperloglog是首选
相关命令:
pfadd 添加元素到HyperLogLog中
pfcount 返回给定HyperLogLog的基数估算值
pfmarge 将多个HyperLogLog合并为一个HyperLogLog
3.Bitmaps
Bitmap就是通过一个bit位来表示某个元素对应的值或者状态,Bitmaps位图只有0和1两个状态,由于采用了Bit为单位来存储数据,因此可以大大节省储存空间
相关命令:
setbit 为指定key的offset位设置值
getbit 获取offset位的值
bitcount 统计字符串被设置为1的bit数,也可以指定统计范围按字节
bitop 对一个或多个保存二进制位的字符串key进行位元操作,并将结果保存到 destkey上
BITPOS 返回字符串里面第一个被设置为1或者0的bit位.start和end只能按字节,不能按位