【入門編】 dir設定 – Redis

こんにちは! Redisの扉を叩いてくれた後輩くん、よくぞ来てくれたね。

今日私たちがマスターするのは、Redisの「永続化(データを消えないように保存する仕組み)」の足元を固める、極めて重要な設定についてだ。

「え、Redisってメモリ上で動く超高速なデータベースでしょ? なんでファイル保存の話が必要なの?」
そう思ったなら、君はもうRedisの本質に気づき始めている。素晴らしい着眼点だ。

ここをしっかりクリアすれば、君も今日からRedisの基本はバッチリマスターできるよ。さあ、コーヒーでも飲みながら、リラックスして聞いてほしい。

—

1. Redisは「超優秀だけど忘れん坊の天才」

まず、Redisの性格を例え話で知ろう。
Redisは、世界一記憶力が良く、計算も瞬時に終わらせる「天才的な事務員」だと思ってほしい。彼(Redis)のデスクの上(メモリ)はいつも綺麗に整理されていて、書類の出し入れは光の速さだ。

しかし、彼には一つだけ致命的な弱点がある。
それは、「仕事が終わってオフィスの電源が落ちると、その日の記憶をきれいさっぱりリセットしてしまう」という点だ。夜中に清掃員がブレーカーを落としたり、サーバーがプツンと切れたりすると、デスクの上の書類(データ)はすべて消え去ってしまう。

「これじゃあ、大事な顧客データなんて預けられないよ!」
そう怒るなかれ。だからこそ、Redisには「一日の終わりに、今日の仕事の成果をノートにまとめて金庫にしまう」という機能が備わっているんだ。

この「金庫にしまうノート」が、RDBファイルやAOFファイルと呼ばれるバックアップファイルたちだ。

—

2. 「dir設定」って一体なんだ?

さて、今日の主役である `dir`設定 の登場だ。

ノート(バックアップファイル)をどこにしまうか? その「保管場所(フォルダ・ディレクトリ)」を指定するのが `dir` 設定なんだよ。

もし君がオフィスの鍵を渡されて、「今日の成果物は適当なところに置いといて」と言われたらどうする? 困るよね。どこに置いたか分からなくなるし、もしかしたら誰でも入れる廊下に放置してしまうかもしれない。

Redisも同じだ。
「データをファイルに保存して!」と命令されたとき、`dir`(ディレクトリ)で指定された場所がちゃん用意されていないと、Redisは「あれ、どこにしまえばいいの…?」とパニックを起こしてエラーを出してしまう。

基本の書き方

Redisの設定ファイル(通常は `redis.conf` という名前だ)の中には、こんな風に書かれている。

データを保存するフォルダの場所を指定する
dir /var/lib/redis

非常にシンプルだろう? `/var/lib/redis` という「専用の金庫部屋(フォルダ)」をRedisにあてがっているわけだ。

—

3. 先輩が教える、実務で絶対に外せない「2つの鉄則」

さて、ここからがシニアエンジニアとしての腕の見せ所だ。
ただ `dir /path/to/dir` と書くだけなら誰でもできる。プロとして現場でRedisを運用するなら、次の2つを絶対に忘れてはいけない。

鉄則①:Redisくんに「書き込み権限」をあたえること

現実世界でも、新米のアルバイトくんに「この金庫に書類をしまいなさい」と言っても、金庫の鍵を持たせていなければ仕事ができないよね。
OSの世界でも一緒だ。`dir` で指定したフォルダに対して、Redisを動かしているユーザー(通常は `redis` ユーザーという専用のアカウント)が、「ファイルを新しく作る権限(書き込み権限)」を持っていないと、保存に失敗してしまう。

もし権限がないと、ログファイルにこんな怒りのメッセージを残してRedisは拗ねてしまう。
> 「おい、指定されたフォルダにファイルを書き込めないぞ!」

フォルダを作ったら、必ず権限を確認しよう。

例:Redis専用ユーザーにフォルダの持ち主を変更する
sudo chown redis:redis /var/lib/redis

例:書き込み権限をしっかり与える
sudo chmod 750 /var/lib/redis

鉄則②:金庫部屋の「広さ(ディスク容量)」を確認すること

考えてみてほしい。
君の会社のデータが毎日どんどん増えているのに、金庫部屋の大きさがダンボール一箱分しかなかったらどうなる? すぐにパンクして、新しいノートが入らなくなるよね。

Redisのバックアップファイルも同じだ。
メモリ上のデータが膨れ上がれば、それを保存するファイルも巨大になる。`dir` で指定したハードディスクの空き容量が足りなくなると、「ディスクがいっぱいでデータを保存できません!」となり、最悪の場合、サーバー全体のシステムがクラッシュする大惨事につながる。

「うちのRedis、最近データ増えたな」と思ったら、定期的にディスクの空き容量をチェックする。これがプロのインフラエンジニアの嗜みだ。

ディスクの空き容量をクールに確認するコマンド
df -h

—

まとめ

どうだい? `dir` 設定の本質が見えてきたんじゃないかな。

  • Redisはメモリ上で動くので、電源が切れるとデータが消える天才。
  • 消えないようにファイルを保存する場所を指定するのが `dir` 設定。
  • 運用するときは、「書き込み権限」と「十分なディスク容量」の2つを必ず守る。

この基本さえ押さえておけば、君が構築したRedisは、どんな予期せぬトラブルが起きても大切なデータを守り抜いてくれる屈強なシステムになるはずだ。

ここをクリアした君なら、もうRedisの永続化の仕組みで迷うことはない。自信を持って次のステップへ進もう!分からないところがあったら、いつでも私に聞いてくれよ。

コメント

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