確保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的配置將丟失