Redis 持久化 RDB -> AOF

背景

當前 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

相關文章
相關標籤/搜索