Geospatial
使用
标题 | |
---|
geoadd | 将给定的空间元素(纬度、经度、名字)添加到指定的键里面。 这些数据会以有序集合的形式被储存在键里面, 从而使得像 GEORADIUS 和 GEORADIUSBYMEMBER 这样的命令可以在之后通过位置查询取得这些元素。GEOADD 命令以标准的 x,y 格式接受参数, 所以用户必须先输入经度, 然后再输入纬度。 |
geodist | 返回两个给定位置之间的距离。如果两个位置之间的其中一个不存在, 那么命令返回空值。指定单位的参数 unit 必须是以下单位的其中一个:m 表示单位为米。km 表示单位为千米。mi 表示单位为英里。ft 表示单位为英尺。如果用户没有显式地指定单位参数, 那么 GEODIST 默认使用米作为单位。GEODIST 命令在计算距离时会假设地球为完美的球形, 在极限情况下, 这一假设最大会造成 0.5% 的误差。 |
georadius | 以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。 |
georadiusbymember | 这个命令和 GEORADIUS 命令一样, 都可以找出位于指定范围内的元素, 但是 GEORADIUSBYMEMBER 的中心点是由给定的位置元素决定的, 而不是像 GEORADIUS 那样, 使用输入的经度和纬度来决定中心点。 |
geohash | 返回一个或多个位置元素的 Geohash 表示。 |
127.0.0.1:6379> geoadd USA 13.361389 38.115556 "New York" 15.087269 37.502669 "Texas"
(integer) 2
127.0.0.1:6379> geopos USA Texas
1) 1) "15.08726745843887329"
2) "37.50266842333162032"
127.0.0.1:6379> geodist USA "New York" Texas km
"166.2742"
127.0.0.1:6379> georadius USA 12 37 300 km
1) "New York"
2) "Texas"
127.0.0.1:6379> georadius USA 12 37 200 km
1) "New York"
127.0.0.1:6379> georadius USA 12 37 300 km withdist
1) 1) "New York"
2) "172.6365"
2) 1) "Texas"
2) "278.9760"
127.0.0.1:6379> georadius USA 12 37 300 km withcoord
1) 1) "New York"
2) 1) "13.36138933897018433"
2) "38.11555639549629859"
2) 1) "Texas"
2) 1) "15.08726745843887329"
2) "37.50266842333162032"
127.0.0.1:6379> georadius USA 12 37 300 km withcoord withdist count 1
1) 1) "New York"
2) "172.6365"
3) 1) "13.36138933897018433"
2) "38.11555639549629859"
127.0.0.1:6379> georadius USA 12 37 300 km withcoord withdist count 2
1) 1) "New York"
2) "172.6365"
3) 1) "13.36138933897018433"
2) "38.11555639549629859"
2) 1) "Texas"
2) "278.9760"
3) 1) "15.08726745843887329"
2) "37.50266842333162032"
127.0.0.1:6379> georadiusbymember USA Texas 180 km
1) "New York"
2) "Texas"
127.0.0.1:6379> geohash USA "New York"
1) "sqc8b49rny0"
HyperLogLog
- 用较少的内存统计某样东西的数量,而不需要知道它的具体内容
用法
标题 | |
---|
pfadd | 将任意数量的元素添加到指定的 HyperLogLog 里面。 |
pfcount | 当 PFCOUNT key [key …] 命令作用于单个键时, 返回储存在给定键的 HyperLogLog 的近似基数, 如果键不存在, 那么返回 0 。当 PFCOUNT key [key …] 命令作用于多个键时, 返回所有给定 HyperLogLog 的并集的近似基数, 这个近似基数是通过将所有给定 HyperLogLog 合并至一个临时 HyperLogLog 来计算得出的。 |
pfmerge | 将多个 HyperLogLog 合并(merge)为一个 HyperLogLog , 合并后的 HyperLogLog 的基数接近于所有输入 HyperLogLog 的可见集合(observed set)的并集。 |
127.0.0.1:6379> pfadd mykey a b c d e f
(integer) 1
127.0.0.1:6379> pfcount mykey
(integer) 6
127.0.0.1:6379> pfcount mykey4 e f g h i j k k
(integer) 7
127.0.0.1:6379> pfadd mykey2 e f g h i j k
(integer) 1
127.0.0.1:6379> pfcount mykey2
(integer) 7
127.0.0.1:6379> pfmerge mykey3 mykey mykey2
OK
127.0.0.1:6379> pfcount mykey3
(integer) 11
Bitmap
详解
offset(偏移)
- offset 参数必须大于或等于 0 ,小于 2^32 (bit 映射被限制在 512 MB 之内)。

使用
标题 | |
---|
setbit | 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。位的设置或清除取决于 value 参数,可以是 0 也可以是 1 。当 key 不存在时,自动生成一个新的字符串值。 |
bitcount | 计算给定字符串中,被设置为 1 的比特位的数量。一般情况下,给定的整个字符串都会被进行计数,通过指定额外的 start 或 end 参数,start和end的单位是字节,8位一个字节。可以让计数只在特定的位上进行。 |
127.0.0.1:6379> setbit bitmaps 0 1
(integer) 0
127.0.0.1:6379> setbit bitmaps 1 1
(integer) 0
127.0.0.1:6379> setbit bitmaps 2 1
(integer) 0
127.0.0.1:6379> setbit bitmaps 3 1
(integer) 0
127.0.0.1:6379> setbit bitmaps 4 1
(integer) 0
127.0.0.1:6379> setbit bitmaps 5 0
(integer) 0
127.0.0.1:6379> setbit bitmaps 6 0
(integer) 0
127.0.0.1:6379> setbit bitmaps 7 0
(integer) 0
127.0.0.1:6379> bitcount bitmaps
(integer) 5
127.0.0.1:6379> bitcount bitmaps 0 1
(integer) 5