Redis(レディス)

Redis(レディス)とは、データをメモリ上に置いて扱う、非常に高速なデータ管理の仕組みのことです。名前と値の組で保存する形が基本で、Webサービスの応答を速くする土台として広く使われています。

現実世界に例えると、Redisは机の上に広げた付箋のようなものです。書庫まで取りに行かずとも、手元を見れば答えが載っています。置ける枚数には限りがありますが、探す速さは比べものになりません。

一般的なデータベースとの違い

項目 Redis 関係データベース
置き場所 主にメモリ 主にディスク
速さ 非常に速い Redisより遅い
データの形 名前と値の組 表と行と列
得意なこと すばやい出し入れ 複雑な条件での検索

メモリに置くから速い

速さの理由は単純です。ディスクへ読み書きに行かず、メモリの中だけで処理を完結させるため、応答が桁違いに速くなります。一秒間に何万件もの読み書きをこなせるため、利用者が集中する場面でも待たせずに応答を返せます。

値の形を選べる

単なる文字の保管庫ではありません。一つの値として、並びを持つリスト、重複しない集合、順位を持つ並び、項目ごとの表などを選べます。この豊富さのおかげで、ランキングの集計や待ち行列の管理といった処理を、アプリ側で組まずに任せられます。

キャッシュとして使うのが定番

もっとも多い使われ方です。データベースへの問い合わせ結果をここに控えておき、次から同じ問い合わせが来たらこちらで返すことで、本体の負担を大きく減らせます。一定時間で自動的に消える指定ができるため、古い内容が残り続ける心配もありません。

ログイン状態の保管にも使う

もう一つの定番です。Webサーバーを複数台に増やすと、誰がログインしているかの情報を各台に持たせられなくなり、共通の置き場が要ります。その受け皿としてRedisを置くのが一般的で、スケールアウトを支える部品としての役割を担っています。

消えてもよい設計にする

使ううえで最も重要な心構えです。メモリ上のデータは電源が切れれば失われるため、ここにしかないデータを置いてはいけません。ディスクへ書き出す機能も備わっていますが、あくまで補助と考え、本体は別のデータベースに置く構成が基本になります。

容量の上限に注意する

運用での落とし穴です。メモリは有限なので、入れ続ければいつか溢れ、古いものから捨てるか、新しい書き込みを拒むかのどちらかになります。どう振る舞わせるかをあらかじめ設定しておかないと、ある日突然サービスが不安定になる原因になります。

ライセンスの変更があった

近年の動きとして押さえておきます。2024年に提供条件が変更され、それを受けて有志が元のコードから分かれた後継の取り組みも生まれています。業務で新しく採用する際は、どの系統を使うのか、条件が自社の使い方に合うのかを確かめておくと安心です。

あわせて知っておきたい用語

  • キャッシュ:
    一度取得した内容を手元に保存しておく仕組みです。
  • NoSQL:
    表の形によらないデータ管理の方式の総称です。
  • メモリ:
    処理中のデータを一時的に置いておく高速な部品です。
  • セッション:
    利用者との一連のやり取りを保つ仕組みです。

コメント

タイトルとURLをコピーしました