Redisを他のキーバリューストアと区別する重要な機能の1つは、String、List、Set、Sorted Set、Hashなどの多数のデータ型をサポートしていることです。開発者は特定のタスクにどのデータ型を使用するかを知っている傾向があるため、これにより問題を解決しやすくなります。このブログでは、Redisでサポートされる6つのデータ型について概説します。
String(文字列)
Redisは文字列をバイトのシーケンスとして保存します。Redisの文字列はバイナリセーフです。つまり、文字列は1つ以上の特殊な終了文字によって決定されるのではなく、固定長になります。したがって、最大512メガバイトまでのものを1つの文字列に保存できます。
Navicat for Redis では、メインメニューから”編集” -> “キーの追加”を選択して、新しいキーと値のペアを作成できます。これにより、データビューに新しい空の行が追加され、エディタが開きます:

エディタを使用して以下を設定できます:
- キー名
- キータイプ
- 値
- TTL(有効期間)
適用ボタンをクリックして、エディタフォームの内容を新しい行に追加します。また、値のサイズを表示します:

Hash(ハッシュ)
Redisでは、ハッシュはキーと値のペアのコレクションです。したがって、オブジェクトを表現したり、カウンターのグループを保存したりするのに、適した選択肢です。全てのハッシュは、最大で2の32乗-1のフィールドと値のペアを保存できます(これは40億以上です!)。
ハッシュの値については、Navicatエディタはフィールド列と値列を持つテーブルを使用します:

List(リスト)
Redisのリストは、追加されたのと同じ順序で並び替えられた文字列の単純なリストです。Redisのリストの先頭または末尾に要素を追加できます。リストの最大の長さは、2の32乗-1、つまり4294967295の要素です(つまり、リストあたりのエレメント数は40億以上です!)。
Navicatのエディタでは、リストの値は要素として表示されます。“要素”の右にある省略記号[...]のボタンをクリックして、完全なリストを入力できる特別なエディタを開きます:

Set(セット)
Redisのセットは、文字列の順序の無いコレクションです。セットはリストに似ていますが、セットでは重複が許可されないことと挿入順序が保持されないことが異なります。
セットもソート可能です。Sorted Set(ソートされたセット)では、全てのメンバーがスコアに関連づけられます。スコアは、ソートされたセットを最小スコアから最大スコアに順序付けするために使用されます。メンバーが一意である間は、スコアが繰り返される可能性があります。
Navicatは、セットとほぼ同じ方法でセットを処理します。こちらに例があります:

ソートされたセットは、“キータイプ“ドロップダウンに"zset"としてリストされます:

Stream(ストリーム)
RedisのStreamデータ型は、Redis 5.0で導入されました。Streamはログデータ構造をモデル化しますが、典型的な追加専用ログの制限の一部を克服するためのいくつかの操作も実装しています。
Navicat for RedisはStreamデータ型をサポートしています!

Redisのデータ型に関する最終的な考え
このブログでは、新しいStreamデータ型を含む、Redisでサポートされる6つのデータ型について概説しました。
Navicat for Redisをお試しになりたい場合は、 こちら からダウンロードしてください。評価版は14日間全ての機能をお使いいただけます。