Redisの特殊データ構造HyperLogLog,Geo,Pub/sub

6684 ワード

Redisの特殊データ構造HyperLogLog,Geo,Pub/sub,Redis Module
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:         ,  ASCDESC       。
WITHHASH:  WITHHASH  ,             hash 。
COUNT countCOUNT  ,           。
  
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で、メッセージの「パブリケーション」と「サブスクリプション」の基本的な能力を達成するために設計されています.しかし、メッセージの永続化など、さまざまなエンタープライズクラスの特性は提供されていません.
  • 1つのRedis clientパブリッシュメッセージ、その他の複数のredis clientサブスクリプションメッセージ、パブリッシュメッセージ「即時発失」、
  • 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"