【入門編】 RDB (Redis Database Backup) – Redis

こんにちは。Redisの世界へようこそ。
Redisの凄さは「爆速」であることですが、その代償として「電源が落ちたらデータが消える」という側面があります。そこで必要になるのが、今日お話しするRDB(Redis Database Backup)という仕組みです。

難しい技術用語は一旦置いておいて、まずは「なぜRDBが必要なのか」を一緒に見ていきましょう。

—

1. RDBは「冷凍保存」である

Redisは、基本的にはメモリという「作業机」の上で仕事をしています。机の上はとても広くて速いですが、電源を切ると消えてしまう揮発性の場所です。

RDBは、いわば「机の上の状態を、定期的に写真に撮って冷凍庫(ハードディスク)に保存しておくこと」です。

  • Redis(メモリ): 常に作業している机の上。
  • RDB(ファイル): 保存された冷凍食品(バックアップ)。

もし急に停電(サーバーダウン)が起きても、次に電源を入れたとき、私たちは冷凍庫から最後に撮った写真(ファイル)を取り出して、机の上を元通りに再現できるわけです。これがRDBの正体です。

2. なぜ「間隔」を空けて撮るのか?

「じゃあ、常に写真を撮ればいいじゃないか」と思うかもしれません。でも、想像してみてください。忙しい仕事中に、1秒おきにポーズをとって写真を撮らされたら、作業効率はガタ落ちですよね?

Redisも同じです。常にバックアップを取るとパフォーマンスが低下してしまいます。だからこそ、RDBは「一定時間ごとに、一度だけガツンと撮る」というスタイルをとっています。

3. 設定をのぞいてみよう

Redisの設定ファイル(`redis.conf`)には、RDBをいつ実行するかのルールが書かれています。

900秒(15分)の間に、少なくとも1つのキーが変更されたら保存する
save 900 1

300秒(5分)の間に、10個のキーが変更されたら保存する
save 300 10

60秒の間に、10000個のキーが変更されたら保存する
save 60 10000

これは、「忙しいときは慎重に、暇なときは大胆に」という、Redisの非常に合理的な判断基準です。この設定をクリアすれば、あなたはもうRedisの永続化の基本をマスターしたと言っても過言ではありません。

4. 知っておくべき「フォーク(Fork)」の魔法

ここだけ少し専門的な話をさせてください。RDBが保存を行う際、Redisは「フォーク(Fork)」という技術を使います。

これは「今の自分の分身を瞬時に作る」技術です。
1. 本体はそのまま作業を続ける。
2. 分身が、今の状態を冷凍庫(ディスク)に書き込む。

このおかげで、バックアップ中であっても、あなたのアプリケーションは止まることなく、ユーザーのリクエストを爆速でさばき続けることができるのです。これがRedisが世界中で愛される理由の一つです。

5. 運用上の注意:RDBの「隙間」を理解する

RDBの弱点も正直にお伝えします。それは「最後に保存してから次に保存するまでの間のデータは、事故が起きると消える」ということです。

例えば「5分おき」に保存する設定なら、最悪の場合、5分間のデータが失われる可能性があります。

  • 重要度が高いデータを扱うなら:RDBとAOF(別の永続化方式)を併用する。
  • キャッシュとして使うなら:RDBだけで十分。

この使い分けが、一流のエンジニアへの第一歩です。

—

まとめ:Redisを使いこなすために

RDBは、「完璧な防御」ではなく、「現実的な落とし所」です。

  • スナップショット(写真)を撮る仕組み。
  • 設定間隔で自動保存される。
  • 分身(フォーク)を作ることで、サービスを止めない。

どうでしょう、RDBのイメージが湧いてきましたか?
最初は難しく感じるかもしれませんが、この「メモリの速さ」と「ディスクの安心感」をどう両立させるか。このバランス感覚こそが、Redisを使いこなす醍醐味です。

さあ、次は実際に設定ファイルをいじって、バックアップファイル(`dump.rdb`)が生成される瞬間を確かめてみてください。自分の手で動かした技術は、一生モノの知識になりますよ。

応援しています。何かあれば、いつでも聞いてくださいね。

コメント

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