RedisとRDBの違いを徹底解説!初心者でもわかるデータベースの仕組みと使い分け
生徒
「最近よく『Redis(レディス)』っていう言葉を聞くんですけど、普通のデータベースと何が違うんですか?」
先生
「良い視点ですね。一言で言うと、データの『保存場所』と『得意分野』が違います。普段私たちが使う一般的なデータベース(RDB)は『頑丈な金庫』、Redisは『すぐに取り出せるメモ帳』のような存在です。」
生徒
「メモ帳……? それだとデータが消えちゃいそうで不安です。」
先生
「その通り。だからこそ、それぞれに役割があるんです。今日はパソコンを触ったことがない人でもイメージできるように、身近な例えを使いながら解説していきますね。」
1. そもそも「データベース」と「RDB」って何?
まず、基本となる「データベース」についてお話しします。データベースとは、コンピュータの中でバラバラになっている情報を、後から使いやすいように整理して保管しておく「データの箱」のことです。
その中でも最も有名なのがRDB(アールディービー:リレーショナル・データベース)です。これは、Excelの表のように「行」と「列」でデータを管理する仕組みです。 例えば、学校の出席簿やお店の顧客リスト、商品の在庫表などをイメージしてください。
RDBの最大の特徴は、「データが消えないように、ハードディスクという場所(低速だけど丈夫な記憶装置)にじっくり書き込む」ことです。慎重に作業するので、銀行の振込データや、絶対に間違えてはいけない契約情報などを扱うのが得意です。
RDBで管理するデータの例(顧客テーブル)
RDBでは、以下のように整然とした表形式でデータを保持します。
id | name | age | last_login
---+----------+-----+-------------------
1 | 佐藤健太 | 28 | 2025-12-01 10:00
2 | 鈴木美咲 | 22 | 2025-12-05 15:30
3 | 田中一郎 | 45 | 2025-12-10 09:15
4 | 高橋洋子 | 35 | 2025-12-15 18:45
5 | 伊藤純次 | 31 | 2025-12-20 12:00
2. Redis(レディス)とは?「爆速」の秘密
次に、今回の主役であるRedis(レディス)について解説します。Redisは「インメモリデータベース」と呼ばれます。
最大の特徴は、データをハードディスクではなく、「メモリ(メインメモリ)」という場所に保存することです。メモリは、ハードディスクに比べてデータの読み書きが圧倒的に速いという性質を持っています。
例えるなら、RDBが「分厚い辞書を本棚から探して開く」作業だとすれば、Redisは「机の上に広げた付箋(ふせん)をパッと見る」くらいの違いがあります。
「消えてしまうなら使えないじゃないか」と思うかもしれませんが、そのスピードを活かして、最新のランキング順位や、ログイン中かどうかの判定など、「頻繁に書き換わり、かつ一瞬で取り出したいデータ」を扱うのに非常に重宝されます。
3. RedisとRDBの決定的な違い(比較表)
初心者の方向けに、両者の違いをわかりやすく表にまとめました。
| 比較項目 | RDB(MySQLなど) | Redis(インメモリ) |
|---|---|---|
| データの保存場所 | ハードディスク(物置) | メモリ(作業机) |
| 処理スピード | 普通(丁寧・慎重) | 超高速(爆速) |
| 永続性(保存の強さ) | 非常に強い(消えない) | 基本は一時的(消える可能性あり) |
| データの形 | 複雑な表(リレーショナル) | 単純なペア(キー・バリュー) |
| 主な用途 | ユーザー情報、注文履歴 | ランキング、一時保存(キャッシュ) |
4. Redisの使い方:キーと値(Key-Value)のシンプル操作
RDBはSQLという言葉を使って「表」を操作しますが、Redisはもっと単純です。 「名前(キー)」と「中身(値:バリュー)」のペアで管理します。これを「Key-Valueストア(KVS)」と呼びます。
例えば、「今日の訪問者数」という名前の箱に「500」という数字を入れる、といった具合です。
操作例1:データの保存と取得(SETとGET)
最も基本的な命令です。「user_name」というキーに「Yamada」という値をセットしてみましょう。
-- Redisにデータを保存する(SET命令)
SET user_name "Yamada"
-- Redisからデータを取り出す(GET命令)
GET user_name
実行結果は以下のようになります。
"Yamada"
操作例2:数字のカウントアップ(INCR)
Redisが得意なのが「カウント(数を増やす)」です。ホームページのアクセス数などを1ずつ増やす際に、いちいち複雑な計算をせずに済みます。
まず、現在の訪問者数を確認します。
visitor_count | value
--------------+-------
1 | 100
-- visitor_count(訪問者数)を1つ増やす
INCR visitor_count
実行後の結果を確認すると、瞬時に数字が更新されます。
visitor_count | value
--------------+-------
1 | 101
5. 実際のアプリではどう使い分けているの?
「じゃあどっちを使えばいいの?」という疑問が湧きますが、実は「両方を組み合わせて使う」のが一般的です。これを「ハイブリッド構成」と呼んだりします。
具体的な活用シーン:ショッピングサイトの場合
- RDB(金庫役): お客様の住所、クレジットカード情報、過去に買った商品の履歴など。これらは絶対に消えてはいけませんし、複雑な検索が必要なので、RDBが担当します。
- Redis(メモ帳役): 「今、カートの中に何が入っているか」という情報や、「タイムセールの残り秒数」など。これらは一瞬で画面に表示させる必要があり、もし万が一消えても(ログアウトし直すなどすれば)致命的な問題にはなりにくいため、Redisが担当します。
操作例3:リスト形式でのデータ管理(LPUSH)
Redisは、最新の「お知らせ」を数件だけ高速に表示するような、リスト形式の管理も得意です。
-- news_listというリストの先頭に、新しいお知らせを追加
LPUSH news_list "メンテナンスのお知らせ"
LPUSH news_list "新商品が入荷しました!"
-- 最新の2件を取得
LRANGE news_list 0 1
実行結果(新しい順に並びます):
1) "新商品が入荷しました!"
2) "メンテナンスのお知らせ"
6. なぜ初心者がRedisを知っておくべきなのか
現代のインターネットサービスは、世界中から一秒間に何万人もの人がアクセスします。 すべてのデータをRDB(頑丈な金庫)だけで処理しようとすると、金庫を開け閉めする時間がかかりすぎて、画面がなかなか開かない「重いサイト」になってしまいます。
そこで、「よく使うデータだけRedis(机の上)に出しておく」という工夫が必要になります。これを専門用語で「キャッシュ(一時保存)」と呼びます。
プログラミング未経験の方でも、「データには『じっくり大切に守るもの』と『とにかく速く出し入れするもの』の2種類があるんだな」と理解しておくだけで、ITの世界の仕組みがぐっと見えやすくなりますよ。