TL

Product Profile

Redis

Salvatore Sanfilippo / 2009年登場

メモリ上で動く超高速なキーバリューストアキャッシュ・セッション・キュー・ランキングなど、速さが要る用途に広く使われる

TL;DR要点だけ先に
  • 1.メモリ上で動く超高速なキーバリューストア。
  • 2.μs〜ms 級の応答で多彩なデータ構造を持つ。
  • 3.キャッシュやランキング向け。主データは別 DB に。

Specifications

基本情報

Introducing

Redis のロゴ
Redisメモリ上で動く超高速なキーバリューストア。キャッシュ・セッション・キュー・ランキングなど、速さが要る用途に広く使われる。
種別
キーバリューインメモリ)
クエリ
コマンド
ライセンス
オープンソース一部 RSAL/SSPL)
登場
2009年
最大の強み
インメモリで超高速μs〜ms)多彩なデータ構造(List/Set/Sorted Set)
代表的な用途
キャッシュ / セッションランキング / レート制限 / リアルタイム処理

Decision Guide

選定ポイント

採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。

Why It Fits

選ぶ理由

  1. インメモリで超高速(μs〜ms)
  2. 多彩なデータ構造(List/Set/Sorted Set)
  3. キャッシュ / Pub-Sub / キュー

Trade-offs

考慮すべき点

  1. メモリ容量に依存
  2. 永続化は補助的(用途次第)
  3. 主データストアには不向きな場面

Deep Dive

もっと詳しく

どんな DB か

Redis は、2009 年に Salvatore Sanfilippo が公開したインメモリのキーバリューストアです。基本はオープンソースとして広く使われてきました(一部バージョンは RSAL や SSPL といったライセンスが適用されます)。

「結局なに?」を一言でいえば、データをメモリ上に置いて読み書きする超高速なデータストアです。応答はマイクロ秒〜ミリ秒の桁で返り、RDB のディスクアクセス中心の処理とは速度の前提が違います。

データモデル・仕組み

キーに対して値を結びつける単純なモデルですが、値として多彩なデータ構造を扱えるのが特徴です。

  • 文字列、List(リスト)、Set(集合)、Sorted Set(スコア付き集合)、Hash など。
  • Sorted Set を使えば、スコア順のランキングを効率よく保てます。
  • Pub/Sub 機能でメッセージ配信のハブとしても使えます。

データは基本的にメモリ上に保持され、性能はメモリ容量に依存します。スナップショットや追記ログによる永続化も用意されていますが、位置づけは補助的です。

得意・不得意

得意なのは、とにかく速さが要る用途です。

  • キャッシュ:DB の前段に置いて応答を高速化する。
  • キュー/Pub-Sub:List を使った簡易キューやメッセージ配信。
  • ランキング・カウンタ:Sorted Set やカウンタ操作。

不得意なのは、メモリに収まらない大容量データの恒久保管や、失っては困るデータの唯一の置き場にすることです。

いつ選ぶか(他との違い)

主データストアとしての全件保管や複雑なクエリは RDB に任せ、その手前で「速さ」を補う層として Redis を組み合わせる構成が定番です。

レイテンシを下げたい、瞬間的なアクセスを捌きたい、という要件が中心なら有力な選択肢になります。逆に、消えると困るデータの単独保管には不向きな場面が多いと考えておくと安全です。

Implementation View

Redisを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

キャッシュ / セッション

比較で見る軸

種別: キーバリュー(インメモリ) / クエリ: コマンド / ライセンス: オープンソース(一部 RSAL/SSPL)

導入後に効く点

多彩なデータ構造(List/Set/Sorted Set)

先に潰すリスク

メモリ容量に依存

数字・仕様の読み方
種別
キーバリュー(インメモリ)
クエリ
コマンド
ライセンス
オープンソース(一部 RSAL/SSPL)
登場
2009年

判断チェックリスト

  • 自社の用途が「キャッシュ / セッション / ランキング / レート制限」に近いか確認する。
  • 強みである「インメモリで超高速(μs〜ms)」が本当に評価軸になるか確認する。
  • 注意点の「メモリ容量に依存」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

キャッシュ / セッションランキング / レート制限リアルタイム処理

Best Fit

こんな用途に向く

キャッシュ / セッションランキング / レート制限リアルタイム処理
公式サイト