aof恢復與rdb伺服器間遷移——redis
1. aof恢復與rdb伺服器間遷移:
1.1. Aof恢復:
如果不小心執行了flushdb或flushall了怎麼辦?
(1)立馬執行命令:shutdown nosave
關閉伺服器,為了防止其他人正在操作伺服器觸發重寫aof,如果aof重寫了,徹底沒救了
(2)修改aof檔案,刪除最後一行的命令:flushdb (或flushall)
(3)再次啟動伺服器,檢視資料恢復
操作流程如下:
127.0.0.1:6379> set hello word
OK
127.0.0.1:6379> flushdb #flushdb、
OK
127.0.0.1:6379> get hello
(nil)
127.0.0.1:6379> shutdown nosave #關閉服務端
[[email protected] rdb]# vi appendonly6379.aof #修改aof檔案
刪除最後一行的:flushdb
127.0.0.1:6379> get hello #檢視恢復的資料
"word"
1.2. Rdb遷移:(匯入rdb檔案)
注:一臺伺服器的
(1)關閉redis服務:
[[email protected] redis]# pkill -9 redis
(2)拷貝rdb檔案
[[email protected] redis]# cp redis.conf redis6383.conf #拷貝配置檔案
(3)修改redis6383的配置檔案,修改內容如下:
#appendonly yes #關閉aof
#port 6379
port 6383
save 900 1 #開啟rdb
save 300 10
save 60 10000
#dir ./
dir /var/rdb #
#dbfilename dump.rdb
dbfilename dump6383.rdb
(4)啟動redis服務端、客戶端
#啟動redis服務
[[email protected] redis]# ./bin/redis-server ./redis6383.conf
#啟動客戶端
[[email protected] redis]# ./bin/redis-cli -p 6383
127.0.0.1:6383> keys * #沒有資料
(empty list or set)
(5)關閉redis服務
(6)產生最新的rdb檔案
啟動redis-6379的服務後,客戶端執行命令:bgsave
(7)拷貝rdb檔案:
[[email protected] rdb]# cp dump6379.rdb dump6383.rdb
(8)啟動redis服務端、客戶端,檢視資料:
[[email protected] redis]# ./bin/redis-server ./redis6383.conf
[[email protected] redis]# ./bin/redis-cli -p 6383
127.0.0.1:6383> keys *
1) "a"
2) "xx"