KUSAMAKURA

智に働けば角が立つ。情に棹させば流される。意地を通せば窮屈だ。とかくに人の世は住みにくい。

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)のみを取り扱っているとわかる。
※コレクションとは、「要素のグループ」のこと。

参考URL