Redis データ型 概要

Redisは高速なインメモリデータストアで、5つの基本データ型を提供しています。 各データ型には特徴的なユースケースがあり、適切に使い分けることで効率的なアプリケーションを構築できます。

1. String(文字列型)

概要

最もシンプルなデータ型で、キーと値の1対1の関係を保存します。 文字列だけでなく、数値やバイナリデータも保存できます。

主なコマンド

  • SET key value - 値を設定
  • GET key - 値を取得
  • INCR key - 数値を1増加
  • DEL key - キーを削除

ユースケース

  • セッション情報の保存
  • カウンター(ページビュー数、いいね数など)
  • キャッシュデータ
  • 一時的なトークンやフラグ
2. List(リスト型)

概要

順序を保持した文字列のコレクションです。両端からの追加・削除が高速で、 リンクリストとして実装されています。

主なコマンド

  • LPUSH key value - 先頭に追加
  • RPUSH key value - 末尾に追加
  • LPOP key - 先頭から取り出し
  • LRANGE key start stop - 範囲取得

ユースケース

  • タイムライン(SNSの投稿など)
  • メッセージキュー
  • 最近のアクティビティログ
  • 履歴管理
3. Hash(ハッシュ型)

概要

フィールドと値のペアを持つマップ構造です。 オブジェクトや構造体を表現するのに最適で、メモリ効率も優れています。

主なコマンド

  • HSET key field value - フィールドを設定
  • HGET key field - フィールドを取得
  • HGETALL key - 全フィールドを取得
  • HDEL key field - フィールドを削除

ユースケース

  • ユーザープロフィール(user:1 → name, email, age)
  • 商品情報の保存
  • 設定値の管理
  • セッションデータ
4. Set(セット型)

概要

重複のない文字列の集合です。順序は保証されませんが、 メンバーの存在チェックや集合演算(和集合、積集合など)が高速です。

主なコマンド

  • SADD key member - メンバーを追加
  • SISMEMBER key member - 存在確認
  • SMEMBERS key - 全メンバーを取得
  • SREM key member - メンバーを削除

ユースケース

  • タグ管理(記事のタグなど)
  • 重複排除リスト(ユニークな訪問者など)
  • 権限管理(ロール、パーミッション)
  • 共通の友人検索(集合演算)
5. Sorted Set(ソート済みセット型)

概要

各メンバーにスコア(浮動小数点数)が関連付けられた集合です。 スコア順に自動的にソートされ、範囲検索やランキング取得が高速です。

主なコマンド

  • ZADD key score member - メンバーを追加
  • ZRANK key member - 順位を取得
  • ZSCORE key member - スコアを取得
  • ZRANGE key start stop - 範囲取得

ユースケース

  • リーダーボード(ゲームのスコアランキング)
  • 優先度付きキュー
  • 時系列データ(タイムスタンプをスコアとして使用)
  • レート制限(スライディングウィンドウ)
データ型の選び方

シンプルな値を保存したい

String を使用

順序が重要なリスト

List を使用

オブジェクトを保存したい

Hash を使用

重複を許さない集合

Set を使用

ランキングやスコア管理

Sorted Set を使用

時系列データの保存

Sorted Set を使用