English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Redis データタイプ

Redisは以下の5種類のデータタイプをサポートしています:string(文字列)、hash(ハッシュ)、list(リスト)、set(集合)およびzset(ソートされたセット:順序付き集合)。

String(文字列)

stringはredisの最も基本的なタイプであり、Memcachedと全く同じタイプと理解することができます。一つのkeyが一つのvalueに対応しています。

stringタイプは二進数安全です。これはredisのstringがどんなデータも含むことができることを意味しています。例えばjpg画像やシリアライズされたオブジェクトなどです。

stringタイプはRedisの最も基本的なデータタイプで、stringタイプの値は最大で保存できます 512MB。

オンラインサンプル

redis 127.0.0.1:6379> SET w3codebox "基本チュートリアルサイト"
OK
redis 127.0.0.1:6379> GET w3codebox
"基本チュートリアルサイト"

上記の例ではRedisの SETGET コマンド。キーはw3codebox、対応する値は 基本チュートリアルサイト

注意:キーは最大で保存できます 512MB。

Hash(ハッシュ)

Redisのハッシュはkey=>value対の集合です。

Redisのハッシュはstringタイプのfieldとvalueのマッピング表で、ハッシュはオブジェクトを保存するのに特に適しています。

オンラインサンプル

DEL w3codeboxは前のテストで使用したkeyを削除するために使用されます、さもなければエラーが返されます:(エラー) WRONGTYPE Operation against a key holding the wrong kind of value

redis 127.0.0.1:6379> DEL w3codebox
redis 127.0.0.1:6379> HMSET w3codebox field1 "Hello" field2 "World"
"OK"
redis 127.0.0.1:6379> HGET w3codebox field1
"Hello"
redis 127.0.0.1:6379> HGET w3codebox field2
"World"

例ではRedisの HMSET, HGET コマンド、HMSET 二つのfield=>value対が設定され、HGETは対応する field に対応 value

それぞれのハッシュには保存できます 232 -1 キーペア(40多億)。

List(リスト)

Redisのリストはシンプルな文字列リストで、挿入順に並べ替えられます。リストの先頭(左側)または末尾(右側)に要素を追加できます。

オンラインサンプル

redis 127.0.0.1:6379> DEL w3codebox
redis 127.0.0.1:6379> lpush w3codebox redis
(integer) 1
redis 127.0.0.1:6379> lpush w3codebox mongodb
(integer) 2
redis 127.0.0.1:6379> lpush w3codebox rabbitmq
(integer) 3
redis 127.0.0.1:6379> lrange w3codebox 0 10
1) "rabbitmq"
2) "mongodb"
3) "redis"
redis 127.0.0.1:6379>

リストには最大で保存できます  232 - 1 要素 (4294967295、それぞれのリストには保存できます40多億)。

Set(セット)

RedisのSetは、stringタイプの無序列表集合です。

セットはハッシュテーブルで実装されているため、追加、削除、検索の複雑度はすべて O(1)。

sadd コマンド

string 要素をkeyに対応するセット集合に追加し、成功した場合 1、もしその要素がすでにセットにある場合、0を返します。

sadd key member

オンラインサンプル

redis 127.0.0.1:6379> DEL w3codebox
redis 127.0.0.1:6379> sadd w3codebox redis
(integer) 1
redis 127.0.0.1:6379> sadd w3codebox mongodb
(integer) 1
redis 127.0.0.1:6379> sadd w3codebox rabbitmq
(integer) 1
redis 127.0.0.1:6379> sadd w3codebox rabbitmq
(integer) 0
redis 127.0.0.1:6379> smembers w3codebox
1) "redis"
2) "rabbitmq"
3) "mongodb"

注意:上記の例では、rabbitmqが2回追加されましたが、集合内の要素のユニーク性に基づいて、2回目の挿入は無視されます。

集合内の最大メンバー数は  232  - 1(4294967295、各集合に保存できます4100億以上のメンバーができます。

zset(ソートセット:有序集合)

Redisのzsetとsetはともにstring型の要素の集合であり、重複のメンバーは許可されません。

違いは、各要素がdouble型のスコアに関連付けられます。Redisは、スコアを通じて集合内のメンバーを小到大にソートします。

zsetのメンバーはユニークですが、スコア(score)は重複できます。

zadd コマンド

要素を集合に追加します。要素が集合に存在する場合、対応するscoreを更新します。

zadd key score member

オンラインサンプル

redis 127.0.0.1:6379> DEL w3codebox
redis 127.0.0.1:6379> zadd w3codebox 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd w3codebox 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd w3codebox 0 rabbitmq
(integer) 1
redis 127.0.0.1:6379> zadd w3codebox 0 rabbitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE w3codebox 0 1000
1) "mongodb"
2) "rabbitmq"
3) "redis"