Redisの5つのストレージタイプとその適用シーン

6512 ワード

共通データ型の概要:
redisではstring,hash,list,set,zsetの5種類のデータ型がよく用いられる.
1.Stringタイプ
Stringは最も簡単なタイプで、1つのkeyは1つのvalueに対応します
Stringタイプのデータは最大1 Gです.Stringタイプの値はintegerと見なすことができ、「INCR」コマンドファミリー操作(incrby、decr、decrby)を可能にし、この場合、このintegerの値は64ビットの符号数に制限される.リスト、set、およびzsetに含まれる独立した要素タイプは、Redis Stringタイプです.
2.Listタイプ
チェーンテーブルタイプで、主な機能はpush、pop、1つの範囲のすべての値を取得するなどです.その中のkeyはチェーンテーブルの名前として理解できます.
RedisではlistがRedis Stringのリストであり,挿入順に並べ替えられる.たとえばLPUSHコマンドを使用してリストヘッダに要素を挿入し、RPUSHコマンドを使用してリストの最後に要素を挿入します.この2つのコマンドの1つが空のkeyに作用すると、新しいlistが作成されます.
Listの最大長は2^32−1要素である.
3.Setタイプ
集合は、数学の集合概念と似ています.操作中のkeyは集合の名前として理解される.
RedisではsetはRedis Stringの無秩序な集合であり,重複要素は許されない.
Setの最大要素数は2^32−1である.
Redisではsetに対する操作として,交差,並列,差分などがある.
4.ZSet(Sorted Set)タイプ
Zsetはsetのアップグレードバージョンで、setに基づいて順序属性が追加されました.この属性は修正要素を追加するときに指定できます.指定するたびにzsetは指定値を自動的にインストールして順序を再調整します.1枚のテーブル、1列value、1列順序として理解できます.操作中のkeyはzsetの名前として理解される.
Zsetの最大要素数は2^32-1です.
順序付けされたzsetの場合、SORTコマンドを使用して、ASC|DESCパラメータを指定してソートできます.
5.hashタイプ
hashは、リレーショナル・データベース構造に最も近いデータ型であり、データベースのレコードまたはプログラム内のオブジェクトをhashmapに変換してredisに格納できます.
二、jedis操作コマンド:
1.value操作のコマンド
 exists(key):    key    

 del(key):    key

 type(key):      

 keys(pattern):      pattern   key

 randomkey:    key     key

 rename(oldname, newname): key oldname    newname, newname     newname   key

 dbsize:        key   

 expire:    key     (s)

 ttl:    key     

 select(index):     

 move(key, dbindex):        key    dbindex      

 flushdb:             key

 flushall:           key

2.String操作のコマンド
 set(key, value):        key string   value

 get(key):         key string value

 getset(key, value):    key string      value

 mget(key1, key2,…, key N):      string(      key1,key2…) value     s

 setnx(key, value):        key string,      string,   key,  value

 setex(key, time, value):     string(   key,  value)  ,      time

 mset(key1, value1, key2, value2,…key N, value N):     string  ,   key i string  value i

 msetnx(key1, value1, key2, value2,…key N, value N):       key i string    ,      string,             key i   value i

 incr(key):   key string 1  

 incrby(key, integer):   key string  integer

 decr(key):   key string 1  

 decrby(key, integer):   key string  integer

 append(key, value):   key string    value

 substr(key, start, end):     key string value   

3.List操作のコマンド
 rpush(key, value):    key list       value     

 lpush(key, value):    key list       value    

 llen(key):     key list   

 lrange(key, start, end):     key list start end     (   0  ,  )

 ltrim(key, start, end):     key list,  start end     

 lindex(key, index):     key list index     

 lset(key, index, value):    key list index        value

 lrem(key, count, value):  count    key list   value   。count 0,      value   ,count>0            count   value   ,count<0      |count|   value   。

 lpop(key):        key list     

 rpop(key):        key list     

 blpop(key1, key2,… key N, timeout):lpop    block  。  timeout 0 ,      key i list     list  ,     。   timeout>0,        ,  timeout ,        ,  key i+1   list  pop  。

 brpop(key1, key2,… key N, timeout):rpop block  。      。

 rpoplpush(srckey, dstkey):        srckey list    ,           dstkey list   

4.Set操作のコマンド
 sadd(key, member):    key set     member

 srem(key, member) :     key set    member

 spop(key) :          key set       

 smove(srckey, dstkey, member) : member      srckey        dstkey   

 scard(key) :     key set           

 sismember(key, member) :  member      key set   

 sinter(key1, key2,…key N) :   

 sinterstore(dstkey, key1, key2,…key N) :          dstkey   

 sunion(key1, key2,…key N) :   

 sunionstore(dstkey, key1, key2,…key N) :          dstkey   

 sdiff(key1, key2,…key N) :   

 sdiffstore(dstkey, key1, key2,…key N) :          dstkey   

 smembers(key) :     key set     

 srandmember(key) :       key set     

5.zset(sorted set)操作のコマンド
 zadd(key, score, member):    key zset     member,score    。         ,   score        。

 zrem(key, member) :     key zset    member

 zincrby(key, increment, member) :      key zset       member,     score  increment;           , score   increment

 zrank(key, member) :     key zset(    score      ) member   rank( index, 0  ),   member  ,  “nil”

 zrevrank(key, member) :     key zset(    score      ) member   rank( index, 0  ),   member  ,  “nil”

 zrange(key, start, end):     key zset(    score      )  index start end     

 zrevrange(key, start, end):     key zset(    score      )  index start end     

 zrangebyscore(key, min, max):     key zset score >= min score <= max     

 zcard(key):     key zset   

 zscore(key, element):     key zset   element score

 zremrangebyrank(key, min, max):     key zset rank >= min rank <= max     

 zremrangebyscore(key, min, max) :     key zset score >= min score <= max     

 zunionstore / zinterstore(dstkeyN, key1,…,keyN, WEIGHTS w1,…wN, AGGREGATE SUM|MIN|MAX): N zset      ,          dstkeyN 。           score,   AGGREGATE   ,       WEIGHT  。      WEIGHT,   1。   AGGREGATE SUM,         score            SUM    , MIN MAX  ,        score                 。

6.Hash操作のコマンド
 hset(key, field, value):    key hash     fieldvalue

 hget(key, field):     key hash field   value

 hmget(key, field1, …,field N):     key hash field i   value

 hmset(key, field1, value1,…,field N, value N):    key hash     field ivalue i

 hincrby(key, field, integer):    key hash field value  integer

 hexists(key, field):   key hash       field  

 hdel(key, field):     key hash   field  

 hlen(key):     key hash     

 hkeys(key):     key hash    

 hvals(key):     key hash       value

 hgetall(key):     key hash     (field)     value

三、各種データ型に対応する応用シーン
1.Stringタイプの適用シーン
Stringは最もよく使われるデータ型で、普通のkey/value記憶である.
2.listタイプの適用シーン
比較は、リスト・ストレージに適用され、順序が比較的固定されます.たとえば、次のようになります.
省、都市リスト
ブランド、メーカー、車系、車種などのリスト
解体工場のテーマリスト...
3.setタイプの適用シーン
Setが提供する機能はlistと同様で、リストデータを格納する必要があり、重複データが発生したくない場合はsetを選択できます.
4.zset(sorted set)タイプの適用シーン
zsetの使用シーンはsetと類似しており、setは自動的に整列するものではないが、zsetはユーザが優先度(score)のパラメータを追加してメンバーをソートすることができ、整列を挿入する、すなわち自動ソートである.秩序正しく重複しないコレクションリストが必要な場合は、zsetデータ構造を選択できます.例:
PV順の人気車種リスト
時間順のニュースリスト
5.hashタイプの適用シーン
テーブルレコードのようなストレージ
ページビューに必要なデータの格納