Redis(レディス)とは、データをメモリ上に置いて扱う、非常に高速なデータ管理の仕組みのことです。名前と値の組で保存する形が基本で、Webサービスの応答を速くする土台として広く使われています。
現実世界に例えると、Redisは机の上に広げた付箋のようなものです。書庫まで取りに行かずとも、手元を見れば答えが載っています。置ける枚数には限りがありますが、探す速さは比べものになりません。
一般的なデータベースとの違い
| 項目 | Redis | 関係データベース |
|---|---|---|
| 置き場所 | 主にメモリ | 主にディスク |
| 速さ | 非常に速い | Redisより遅い |
| データの形 | 名前と値の組 | 表と行と列 |
| 得意なこと | すばやい出し入れ | 複雑な条件での検索 |
メモリに置くから速い
速さの理由は単純です。ディスクへ読み書きに行かず、メモリの中だけで処理を完結させるため、応答が桁違いに速くなります。一秒間に何万件もの読み書きをこなせるため、利用者が集中する場面でも待たせずに応答を返せます。
値の形を選べる
単なる文字の保管庫ではありません。一つの値として、並びを持つリスト、重複しない集合、順位を持つ並び、項目ごとの表などを選べます。この豊富さのおかげで、ランキングの集計や待ち行列の管理といった処理を、アプリ側で組まずに任せられます。
キャッシュとして使うのが定番
もっとも多い使われ方です。データベースへの問い合わせ結果をここに控えておき、次から同じ問い合わせが来たらこちらで返すことで、本体の負担を大きく減らせます。一定時間で自動的に消える指定ができるため、古い内容が残り続ける心配もありません。
ログイン状態の保管にも使う
もう一つの定番です。Webサーバーを複数台に増やすと、誰がログインしているかの情報を各台に持たせられなくなり、共通の置き場が要ります。その受け皿としてRedisを置くのが一般的で、スケールアウトを支える部品としての役割を担っています。
消えてもよい設計にする
使ううえで最も重要な心構えです。メモリ上のデータは電源が切れれば失われるため、ここにしかないデータを置いてはいけません。ディスクへ書き出す機能も備わっていますが、あくまで補助と考え、本体は別のデータベースに置く構成が基本になります。
容量の上限に注意する
運用での落とし穴です。メモリは有限なので、入れ続ければいつか溢れ、古いものから捨てるか、新しい書き込みを拒むかのどちらかになります。どう振る舞わせるかをあらかじめ設定しておかないと、ある日突然サービスが不安定になる原因になります。
ライセンスの変更があった
近年の動きとして押さえておきます。2024年に提供条件が変更され、それを受けて有志が元のコードから分かれた後継の取り組みも生まれています。業務で新しく採用する際は、どの系統を使うのか、条件が自社の使い方に合うのかを確かめておくと安心です。


コメント