そもそもRedisの仕様
Redisはオンメモリであるため、終了すると全てのデータは削除される
では、データの永続化はどのようにしているのか?
デフォルトでは、メモリの内容を定期的にファイルに保存する設定になっている
つまり、自動的にバックアップがとられている形(※1)
バックアップファイルの場所と名前はデフォルトでは、/var/lib/redis/dump.rdb
らしい(※2)
起動時にバックアップファイルが存在すれば、自動的にそれを読み込む
※1:手動のバックアップコマンドも存在する(save, bgsabe, lastsave
など)
※2:正確にはredis.conf
ファイルのdir, dbfilename
を参照して確認すべき
dumpをとりたい場合
以上のことから、バックアップファイルがdumpファイルになり得る
しかし、そのままだと自動的に中身が更新され続けるので、dumpしたい時点でバックアップファイルを移動 or 改名 or コピーする必要がある
当たり前ではあるが、、、
移動や改名した場合は、バックアップファイル/var/lib/redis/dump.rdb
が存在しないことになるため、Redisを起動すると何もデータが入っていない状態となる
コピーした場合は、元のバックアップファイル/var/lib/redis/dump.rdb
は存在するため、Redisを起動するとデータが入っている状態となる
dumpしたデータを戻す
いわゆるリストア
/var/lib/redis/
ディレクトリ配下にdump.rdb
という名前でdumpファイルを置いてあげればOK
その後、Redis再起動してデータが入っていればOK