Contents追記専用ファイルモード一般的な情報ログの書き換えについてちょっと待って。追記専用ファイルは、Redisを強固にするオプションです。意味が分からない?では、一緒に観ていきましょう:標準のRedisでは、データセットをDiskにバイナリでdump.rdbに保存します(初期設定の場合)。データセットに対して、60秒で100回変更が有った時、もしくわ1000秒で1回変更があった時にファイルに保存します、この設定は変更することも出来ます。この動作を”Snapshotting”と呼びます。Snapshottingは、堅牢性が高いとは言えません。redis-server”を間違って実行してしまったら?Redisに保存されている最新のデータセットは失われてしまいます。これは、アプリ側に取ってはうれしい話ではありません。applications.その問題を解決する為に、Snapshottingに追記専用ファイルを使用します。使うためには?Ver.1.1のみで使用できます。yes”の項目を有効化します。Redisがコマンドを受け取るたびにすべてのコマンドをファイルに追記していきます。Redisを再起動した場合には、コマンドをすべてリプレイしデータセットの状態をリビルドします。ログの書き換えについて¶データセットに変更があるたびに追記すると、ご想像の通りログファイルはドンドン大きくなります。‘3’....と増やし提起‘100000000000’まで増やしていったときログファイルは数バイトですみます。Redisは興味深い機能を持っています。追記型のログファイルのリビルドは、クライントからのコマンドプロセスを停止させずにバックグラウンドで動作います。時間が経つに連れLogがドンドン大きくなってきます。リビルドを行うことで安全に古いログを保管できます。(ただし、Ver1.1のベータの機能で提供されています)ちょっと待って。基本的に、Snapshottingはいつもcopy-on-writeと同じような挙動をとります。Redisは、親要素と子要素をフォークします。テンポラリーファイルの子要素に新規のログを追加します。メモリー内で親要素はすべての新規子要素を集めます。子要素が集まったらファイルを書き換えます。親要素は書き換え完了を受け取るとメモリー内で子要素がファイルに書き込み完了したことを記録します。Redisは、古いファイルと新しいファイルのリネーム作業などをすべて自動で行ないます。追記専用ログファイルを使うとどれくらい安全?¶redis.confを見てみよう。あなたはいつでもコンフィギュレーションを変更できます、fsync()に関しては、3つのオプションがあります。すべてのコマンドをログファイルに追記していきます。遅いですが、とても安全です。毎秒毎にログファイルに追記していきます。十分に高速に動作します。最悪1秒間のデータが失われます。標準のOSのファイルシステムで保存するモノです。最高に速いですが安全ではありません。デフォルトの設定では”毎秒”が設定されています。それは、スピードと安全性でバランスの取れた設定です。”always”オプションはとても遅いのです。Redis2.0では、より速い実装が予定されています。追記専用ファイルの書き込み時にサーバがクラッシュして、Redisで読み込み不能なファイルが作成された場合などです。このような事態になった場合は以下の手順を試してください。追記専用ファイルのバックアップコピーを作成してください。オリジナルファイルに対してフィックスをかけます。<filename>フィックスしたオリジナルファイルとバックアップファイルの2つでDiffを取り差分をチェックしてください。フィックスしたファイルでサーバをリスタートしてください。