Redisの特殊データ構造HyperLogLog,Geo,Pub/sub
6684 ワード
Redisの特殊データ構造HyperLogLog,Geo,Pub/sub,Redis Module
1.HyperLogLog
Redis HyperLogは基数統計を行うアルゴリズムであり、HyperLogの利点は、入力要素の数や体積が非常に大きい場合、基数を計算するのに必要な空間が常に固定され、小さいことである.
ベースコマンド
≪インスタンス|Instance|emdw≫
2.Geo
RedisのGEOは3.2バージョンの新しい特性です.この機能は、ユーザが与えた地理的位置情報を格納し、これらの情報を操作することができる.ベースコマンド
3.Pub/Sub
「パブリケーション/サブスクリプション」はredisで、メッセージの「パブリケーション」と「サブスクリプション」の基本的な能力を達成するために設計されています.しかし、メッセージの永続化など、さまざまなエンタープライズクラスの特性は提供されていません. 1つのRedis clientパブリッシュメッセージ、その他の複数のredis clientサブスクリプションメッセージ、パブリッシュメッセージ「即時発失」、 redisは、パブリッシュされたメッセージを永続的に保存しません. メッセージ購読者も購読後のメッセージしか得られず、チャネル内のこれまでのメッセージは得られない.
共通コマンド
≪インスタンス|Instance|emdw≫
1.HyperLogLog
Redis HyperLogは基数統計を行うアルゴリズムであり、HyperLogの利点は、入力要素の数や体積が非常に大きい場合、基数を計算するのに必要な空間が常に固定され、小さいことである.
ベースコマンド
PFADD key element [element ...]
HyperLogLog 。
PFCOUNT key [key ...]
HyperLogLog 。
PFMERGE destkey sourcekey [sourcekey ...]
HyperLogLog HyperLogLog
≪インスタンス|Instance|emdw≫
redis 127.0.0.1:6379> PFADD mykey "redis"
1) (integer) 1
redis 127.0.0.1:6379> PFADD mykey "mongodb"
1) (integer) 1
redis 127.0.0.1:6379> PFADD mykey "mysql"
1) (integer) 1
redis 127.0.0.1:6379> PFCOUNT mykey
(integer) 3
2.Geo
RedisのGEOは3.2バージョンの新しい特性です.この機能は、ユーザが与えた地理的位置情報を格納し、これらの情報を操作することができる.ベースコマンド
。
GEOADD location-set longitude latitude member [longitude latitude member ...]
redis> GEOADD Hangzhou 120.0919500000 30.3219600000 Xihu
GEODIST location-set location-x location-y [unit]
unit ,
m 。
km 。
mi 。
ft 。
redis> GEODIST Hangzhou Xihu Xixi m
( , )
GEORADIUS location-set longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [ASC|DESC] [COUNT count]
:
radius , m|km|ft|mi
:
WITHCOORD: WITHCOORD , 。
WITHDIST: WITHDIST , 。
ASC|DESC: , ASC , DESC 。
WITHHASH: WITHHASH , hash 。
COUNT count: COUNT , 。
redis> GEORADIUS Hangzhou 120.0919500000 30.3219600000 10 km
GEORADIUSBYMEMBER key member radius [m|km|ft|mi] [WITHCOORD] [WITHDIST] [ASC|DESC] [WITHHASH] [COUNT count]
GEORADIUS , member ,
redis> GEORADIUS Hangzhou Xihu 10 km
3.Pub/Sub
「パブリケーション/サブスクリプション」はredisで、メッセージの「パブリケーション」と「サブスクリプション」の基本的な能力を達成するために設計されています.しかし、メッセージの永続化など、さまざまなエンタープライズクラスの特性は提供されていません.
共通コマンド
PSUBSCRIBE pattern [pattern ...]
。
PUBSUB subcommand [argument [argument ...]]
。
PUBLISH channel message
。
PUNSUBSCRIBE [pattern [pattern ...]]
。
SUBSCRIBE channel [channel ...]
。
UNSUBSCRIBE [channel [channel ...]]
。
≪インスタンス|Instance|emdw≫
。 redisChat:
redis 127.0.0.1:6379> SUBSCRIBE redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1
# , redis , redisChat , 。
redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"
(integer) 1
redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by runoob.com"
(integer) 1
#
1) "message"
2) "redisChat"
3) "Redis is a great caching technique"
1) "message"
2) "redisChat"
3) "Learn redis by runoob.com"