Redis笔记二:复杂类型

107 阅读2分钟

HyperLogLogs

简介:是用来做基数统计的算法,优点是在输入元素的数量或者体积非常大时,计算基数的空间总是固定的并且很小。 基数是什么: 比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 基数估计就是在误差可接受的范围内,快速计算基数。

命令: 添加:

PFADD key element element ...
PFADD runnoobkey "redis" "mysql" "java"

统计:

PFCOUNT key
PFCOUNT runnoobkey

合并:

PFMERGE destkey sourcekey sourcekey
PFMERGE runnoobkey key1 key2

GEO

简介:主要用于存储地理位置信息,并对存储的信息进行操作。 主要的操作方法:

  • geoadd:添加地理位置的坐标
  • geopos:获取地理位置的坐标
  • geodist:计算两个位置的距离
  • georadius:根据用户给定的经纬坐标获取指定的范围内的地理位置集合
  • georadiusbymember:根据存储在位置集合中的某个地点获得指定范围内的地理位置集合
  • goehash:返回一个或多个位置对象的geohash值
geoadd

geoadd 用于存储指定的地理空间位置,可以将一个或多个经度、纬度、位置名称添加到指定的key中。

GEOADD key longitude latitude member [longitude latitude member ...]
GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
geopos

geopos用于从给定的key里返回所有指定名称的位置,不存在的返回nif

GEOPOS key member [member ...]
GEOPOS Sicily Palermo Catania NonExisting
geodist

geodist 用于返回两个给定位置之间的距离

GEODIST key member1 member2 [m|km|ft|mi]
GEODIST Sicily Palermo Catania km
georadius、georadiusbymember

georadius 以给定的经纬度为中心,返回键包含的位置元素中,与中心的距离不超过给定最大距离的所有位置元素 georadiusbymember:区别在于,这里的中心点是由给定的位置元素决定的

GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]

GEORADIUS Sicily 15 37 200 km WITHDIST
GEORADIUSBYMEMBER Sicily Agrigento 100 km
geohash

Redis GEO 使用geohash来保存地理位置的坐标,用于获取一个或多个位置元素的geohash值

GEOHASH key member [member ...]
GEOHASH Sicily Palermo Catania