Why It Fits
選ぶ理由
- インメモリで超高速(μs〜ms)
- 多彩なデータ構造(List/Set/Sorted Set)
- キャッシュ / Pub-Sub / キュー
Product Profile
Salvatore Sanfilippo / 2009年登場
メモリ上で動く超高速なキーバリューストア。キャッシュ・セッション・キュー・ランキングなど、速さが要る用途に広く使われる。
Specifications
Introducing
Decision Guide
採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。
Why It Fits
Trade-offs
Deep Dive
Redis は、2009 年に Salvatore Sanfilippo が公開したインメモリのキーバリューストアです。基本はオープンソースとして広く使われてきました(一部バージョンは RSAL や SSPL といったライセンスが適用されます)。
「結局なに?」を一言でいえば、データをメモリ上に置いて読み書きする超高速なデータストアです。応答はマイクロ秒〜ミリ秒の桁で返り、RDB のディスクアクセス中心の処理とは速度の前提が違います。
キーに対して値を結びつける単純なモデルですが、値として多彩なデータ構造を扱えるのが特徴です。
データは基本的にメモリ上に保持され、性能はメモリ容量に依存します。スナップショットや追記ログによる永続化も用意されていますが、位置づけは補助的です。
得意なのは、とにかく速さが要る用途です。
不得意なのは、メモリに収まらない大容量データの恒久保管や、失っては困るデータの唯一の置き場にすることです。
主データストアとしての全件保管や複雑なクエリは RDB に任せ、その手前で「速さ」を補う層として Redis を組み合わせる構成が定番です。
レイテンシを下げたい、瞬間的なアクセスを捌きたい、という要件が中心なら有力な選択肢になります。逆に、消えると困るデータの単独保管には不向きな場面が多いと考えておくと安全です。
Implementation View
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
キャッシュ / セッション
種別: キーバリュー(インメモリ) / クエリ: コマンド / ライセンス: オープンソース(一部 RSAL/SSPL)
多彩なデータ構造(List/Set/Sorted Set)
メモリ容量に依存
Best Fit