當前 redis 持久化模式爲 RDB,具體配置html
save 900 1 # 900 秒有 1 次更新則快照
save 300 10 # 300 秒有 10 次更新則快照
save 60 10000 # 60 秒有 10000 次更新則快照
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data
複製代碼
那麼經過 docker 運行 redis 可將數據持久化到本地特定目錄,即redis
docker run -d --name=redis -p 6379:6379 -v $(pwd):/data redis:3.2.3
複製代碼
經過 save 規則能夠知道,並非每次操做都會持久化,即重啓可能丟數據。 爲了不丟數據致使異常,因而想變動持久化模式爲 AOF。docker
調整 redis 配置文件,aof 相關配置以下數據庫
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec # 每秒備份
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
複製代碼
重啓 redis ,發現原來的 rdb 數據並無加載,可見變動爲 aof 以後,redis 啓動之時不會加載 rdb 的數據,因而還原配置,恢復 redis 數據。bash
參考 redis 文檔 怎麼從 RDB 持久化切換到 AOF 持久化, 發現能夠在運行時直接切換 redis 持久化模式,執行命令以下app
redis-cli> CONFIG SET appendonly yes
redis-cli> CONFIG SET save ""
複製代碼
發現 /data 目錄下自動生成了appendonly.aof 文件,經過 dbsize
命令來進行驗證數據庫的鍵的數量沒有改變。至此,說明 redis 的持久化模式已經進行了變動。ui
爲了不重啓以後配置失效,從新調整 redis.conf 配置文件,添加 AOF 相關配置,因而重啓 redis 驗證,發現數據正常,至此,切換結束。spa