redis不重啟,切換RDB備份到AOF備份

py魚發表於2018-12-03

確保redis版本在2.2以上

[root@pyyuc /data 22:23:30]#redis-server -v
Redis server v=4.0.10 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=64cb6afcf41664c

本文在redis4.0中,通過config set命令,達到不重啟redis服務,從RDB持久化切換為AOF

實驗環境準備

redis.conf服務端配置檔案

daemonize yes
port 6379
logfile /data/6379/redis.log
dir /data/6379
dbfilename  dbmp.rdb
save 900 1                    #rdb機制 每900秒 有1個修改記錄
save 300 10                    #每300秒        10個修改記錄
save 60  10000                #每60秒內        10000修改記錄

啟動redis服務端

redis-server redis.conf

登入redis-cli插入資料,手動持久化

127.0.0.1:6379> set name chaoge
OK
127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> set addr shahe
OK
127.0.0.1:6379> save
OK

檢查RDB檔案

[root@pyyuc /data 22:34:16]#ls 6379/
dbmp.rdb  redis.log

備份這個rdb檔案,保證資料安全

[root@pyyuc /data/6379 22:35:38]#cp dbmp.rdb /opt/

執行命令,開啟AOF持久化

127.0.0.1:6379> CONFIG set appendonly yes   #開啟AOF功能
OK
127.0.0.1:6379> CONFIG SET save ""  #關閉RDB功能
OK

確保資料庫的key數量正確

127.0.0.1:6379> keys *
1) "addr"
2) "age"
3) "name"

確保插入新的key,AOF檔案會記錄

127.0.0.1:6379> set title golang
OK

此時RDB已經正確切換AOF,注意還得修改redis.conf新增AOF設定,不然重啟後,通過config set的配置將丟失

相關文章