Redis のデータ型
Redis のデータ型
ここでは、単純ながらList型、Set型、Hash型の違いを主に説明する。
詳しい説明は、原文 と、丁寧に説明しているサイト があるので、そちらを参考にして欲しい。
Redis のデータ型
ざっと、Redis で扱うデータ型の説明。データ型は下記のパターンのみとなる。
- String型
Redis で取り扱う、最も基本的な型。JPEGやシリアライズされたRubyオブジェクトなど、どんなデータでも保持することが可能。最大で512MB。 - List型
String型のリスト。新規要素をリストの先頭または、末尾に追加することができる。 - Set型
並べ方に一定の基準の無いString型のコレクション。要素の追加、削除、確認をO(1)で実施可能。重複要素を許可しないことが特徴。 - ソート済、Set型
並べ方に基準を設けたSet型。 - Hash型
順序の無いString型フィールドと、値のマップ。
ex) HSET サンプル
HSET USER:admin password 12345
USER:ADMIN
Field | Value |
---|---|
password | 12345 |
List、Set、Mapの違い
もの凄く基本的なことだけど、List、Set、Mapの違いを今一度、確認。
ちなみに、Hashは、ハッシュテーブルに基づく実装をしました、ということ。キーを要約する値であるハッシュ値を添え字として値を管理することで、検索や追加を要素数に依存せず、O(1)で実現する。
- List
順序付けされた、重複要素を許容するコレクション。 - Set
重複要素の無いコレクション。 - Map
キーと値をマッピングしたコレクション。
こうして見ると、Redis は単純なデータ型(String,List,Set,Map)のみを取り扱っているとわかる。
※コレクションとは、「要素のグループ」のこと。