【入門編】 rdbcompression設定 – Redis

こんにちは!Redisの世界へようこそ。
今回は、Redisのデータ保存の裏側を支える超重要ポイント、「RDBファイルの圧縮(rdbcompression)」についてお話しします。

「データベースの保存形式」とか聞くと、なんだか難しそうに感じるかもしれません。でも大丈夫。今日お話しするコツさえ掴めば、Redisの仕組みの本質がスッと頭に入ってきますよ。

ここをクリアすれば、Redisの基本はバッチリマスターできます。一緒に優しく紐解いていきましょう!

—

1. Redisの「おもいで帳」:RDBってなに?

Redisは、データをすべてメモリ(RAM)の上に置いて超高速に動くデータベースです。
しかし、メモリの弱点は「電気が消えるとデータがぜんぶ消えちゃう(揮発性)」ということ。サーバーが突然ダウンしたら大変ですよね。

そこでRedisは、メモリの中にある大切なデータを、時々パシャリと写真に撮るように、ハードディスク(またはSSD)にファイルとして書き出します。この保存されたファイルをRDB(Redis Database)ファイルと呼びます。いわば、Redisの「おもいで帳」ですね。

—

2. 日常の例え:トランクケースに荷物をどう詰める?

さて、ここで今日のテーマである `rdbcompression`(RDBの圧縮) の登場です。

想像してみてください。あなたは旅行に行くために、たくさんの洋服や荷物をトランクケースに詰め込もうとしています。

ここで選択肢が2つあります。

1. そのままポイポイ詰める(圧縮なし:`no`)

  • メリット: すぐに終わる!手荷造りに頭を使わないから、脳みそ(CPU)が疲れない。
  • デメリット: トランクがいっぱいになって、大きなケースが必要になる(ディスク容量を食う)。

2. 圧縮バッグを使って、空気を抜いてギュッと小さくする(圧縮あり:`yes`)

  • メリット: トランクがスッキリ!小さなスペースで済む(ディスク容量を節約できる)。
  • デメリット: 詰め込むときに「ううっ」と力を使うし、チャックを閉めるのに時間がかかる(CPUに負荷がかかる)。

Redisの `rdbcompression` は、まさにこの「荷造りの方法」を決める設定なんです。

  • `yes`(デフォルト):LZFというアルゴリズムを使って、文字列データをギュッと圧縮して保存する。
  • `no`:圧縮せずに、そのままの大きさで保存する。

—

3. 設定の裏側:CPUとディスクのトレードオフ

エンジニアの世界では、何かを得るためには何かを犠牲にする「トレードオフ」がよく起こります。この設定もまさにそれです。

圧縮する(`rdbcompression yes`)場合

  • ディスクに優しい: ファイルサイズが小さくなるので、保存先の容量を節約できます。クラウドのストレージ代の節約にもなりますね。
  • ネットワークにも優しい: 他のサーバーにファイルをバックアップとして送るときも、転送が早くなります。
  • CPUが少し頑張る: データを圧縮・解凍する計算をするために、サーバーのCPUがほんの少しだけ忙しくなります。

圧縮しない(`rdbcompression no`)場合

  • CPUに優しい: 面倒な計算をしないので、スナップショット(写真撮影)の瞬間にCPUがほとんど疲れず、一瞬で終わります。
  • ディスクが泣く: ファイルサイズが大きくなり、ハードディスクの容量をたくさん消費します。

—

4. 実際の現場ではどう設定する?

「じゃあ、どっちにすればいいの?」という疑問が湧きますよね。

結論から言うと、特別な理由がない限り、デフォルトの `yes` のままでOK です。
なぜなら、現代のCPUはとても優秀で、LZFによる圧縮・解凍は非常に高速だからです。ディスク容量を圧迫するリスクを避ける方が、実務では圧倒的にメリットが大きいのです。

もし設定を変えたいときは、Redisの設定ファイル(`redis.conf`)を覗いてみます。

redis.conf の設定例

文字列の保存時にLZF圧縮を使うか?
yes: CPUを使う代わりにファイルサイズを小さくする(推奨)
no: 圧縮しない。CPU負荷を減らす代わりにファイルが大きくなる
rdbcompression yes

このように、一行のパラメータを変えるだけで、システムの性格をチューニングすることができます。

—

おわりに

いかがでしたでしょうか?
「rdbcompression」なんて名前を聞くと身構えてしまいますが、中身は「トランクケースに荷物をギュッと小さく詰めるかどうか」という、とてもシンプルで身近なお話でした。

データベースの技術は、こうした「身近な例え」に置き換えてみると、本質がスッと見えてきます。
この調子で、Redisの奥深い世界を一緒に楽しくマスターしていきましょう!次のステップも、私と一緒にクリアしていきしょうね。

コメント

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