Redisデータ型(四)

3598 ワード

一、Redisデータ型
Redis        :string(   ),hash(  ),list(  ),set(  ) zset(sorted set:    )。

String(文字列)
string redis      ,       Memcached       ,  key    value。
string         。   redis string        。  jpg           。
string   Redis        ,        512MB。

≪インスタンス|Instance|emdw≫
redis 127.0.0.1:6379> SET name "w3cschool.cc"
OK
redis 127.0.0.1:6379> GET name
"w3cschool.cc"

以上の例では,RedisのSETとGETコマンドを用いた.キーはname、対応する値はw 3 cschoolである.cc.注:1つのキーで最大512 MBを格納できます.
二、HASH
Redis hash         。
Redis hash   string   field value    ,hash          。

≪インスタンス|Instance|emdw≫
redis 127.0.0.1:6379> HMSET user:1 username w3cschool.cc password w3cschool.cc points 200
OK
redis 127.0.0.1:6379> HGETALL user:1
1) "username"
2) "w3cschool.cc"
3) "password"
4) "w3cschool.cc"
5) "points"
6) "200"
redis 127.0.0.1:6379>

以上の例ではhashデータ型には、ユーザスクリプト情報を含むユーザオブジェクトが格納されている.例ではRedis HMSET,HGETALLコマンドを用い,user:1はキー値である.各hashは、232〜1キー値対(40億以上)を格納することができる.
三、List(リスト)
Redisリストは単純な文字列リストで、挿入順に並べ替えられています.エレメントガイドリストのヘッダー(左)または末尾(右)を追加できます.
≪インスタンス|Instance|emdw≫
redis 127.0.0.1:6379> lpush w3cschool.cc redis
(integer) 1
redis 127.0.0.1:6379> lpush w3cschool.cc mongodb
(integer) 2
redis 127.0.0.1:6379> lpush w3cschool.cc rabitmq
(integer) 3
redis 127.0.0.1:6379> lrange w3cschool.cc 0 10
1) "rabitmq"
2) "mongodb"
3) "redis"
redis 127.0.0.1:6379>

リストには最大232~1の要素が格納されます(4294967295、各リストには40億以上格納されます).
四、Set(集合)
 
RedisのSetはstring型の無秩序集合である.
集合はハッシュテーブルによって実現されるので,追加,削除,検索の複雑さはいずれもO(1)である.
saddコマンド
string要素を、keyに対応するsetセットに追加し、1を正常に返します.要素とセットで0を返すと、keyに対応するsetに戻りエラーはありません.
 
sadd key member

≪インスタンス|Instance|emdw≫
redis 127.0.0.1:6379> sadd w3cschool.cc redis
(integer) 1
redis 127.0.0.1:6379> sadd w3cschool.cc mongodb
(integer) 1
redis 127.0.0.1:6379> sadd w3cschool.cc rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd w3cschool.cc rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers w3cschool.cc

1) "rabitmq"
2) "mongodb"
3) "redis"

 
注:上記の例ではrabitmqは2回追加されましたが、集合内の要素の一意性に応じて、2回目に挿入された要素は無視されます.コレクションの最大メンバー数は232~1です(4294967295、各コレクションに40億人以上のメンバーを格納できます).
五、zset(sorted set:秩序集合)
Redis zsetはsetと同様にstringタイプ要素の集合であり、重複するメンバーは許可されません.異なるのは、各要素がdoubleタイプのスコアに関連付けられていることです.redisは、集合内のメンバーをスコアで小さいものから大きいものに並べ替えるものです.zsetのメンバーは一意ですが、スコア(score)は繰り返すことができます.
zaddコマンドはエレメントをコレクションに追加し、エレメントがコレクションに存在する場合は対応するscoreを更新します.
zadd key score member 

≪インスタンス|Instance|emdw≫
redis 127.0.0.1:6379> zadd w3cschool.cc 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd w3cschool.cc 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd w3cschool.cc 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd w3cschool.cc 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE w3cschool.cc 0 1000

1) "redis"
2) "mongodb"
3) "rabitmq"