データ永続化についてまとめてみた2017.05.24皆さんお久しぶりです。プログラマの吉村です。最近昼間はようやく暖かくなってきましたが、まだ夜は寒いです。夜寝る時に窓を開けっ放しにして風邪等引かないように気をつけましょう。データ永続化についてまとめてみようと思います。等が知られているかと思います。揮発性な為、サービスを停止させるとデータはなくなってしまいます。Redisではデータ永続化の機能によりデータを保持しておく事が可能です。Redisデータ永続化の方法には2種類あります。実際に2つを比較してみようと思います。定期的にデータベースの内容をディスクに出力します。いうバイナリファイル内に保存されます。再起動時にはこのデータを元にデータが復元されます。いうファイルで変更する事が出来ます。デフォルトでは下記のような設定になっているかと思います。900秒以内に一回以上の更新があった場合に、保存されるという事になります。する事でバックアップを取らないようにする事も出来ます。コマンドを実行する事で可能です。バックグラウンドで実行する事が出来ます。停止した場合は最後に取ったバックアップからの差分のデータを失う可能性があります。その為、それが許容出来る場合に利用する事になります。実行されたコマンドが保存されていきます。スナップショットでのデータ損失の可能性を許容出来ない場合はこちらの方法になります。書き出す頻度の設定は次の3つから選択できます。常に同期的に書き込まれる事になるのでデータ損失の可能性はかなり低くなります。同期的に書き込む場合とそうでない場合では、100倍ほどパフォーマンスが低下してしまうとの事です。落とし所となる場合が多くなるのではないでしょうか。起動時に読み込まれます。ファイルを変更しても反映されません。登録されているデータがファイルへ書き込まれる訳ではありません。スナップショットとAOFが同時に有効になっている場合、データ復旧時にはAOFのファイルが優先されます。方が信頼性が高い事が保証されている為)その為、スナップショットを有効にした状態で、運用を開始し、後にAOFを有効にした際にサービス再起動時にデータが読み込めない!といった事がありました。コマンドを実行する事で、その時点のDBを再構成し明示的に追記専用ファイルを作成する事が出来ます。まとめいかがでしたでしょうか。永続化についてまとめてみました。残しておきたいデータがある場合は永続化の設定をおこなっておきましょう。バックアップファイルを保存していても、そのファイルが破損してしまったり、紛失してしまった場合は元も子もありません。定期的にバックアップファイルを残す手段が課題となりそうです。採用情報クラウドクリエイティブスタジオでは絶賛エンジニア募集中です。