1. 程式人生 > >aof恢復與rdb伺服器間遷移——redis

aof恢復與rdb伺服器間遷移——redis

1. aof恢復與rdb伺服器間遷移:

1.1. Aof恢復:

如果不小心執行了flushdbflushall了怎麼辦?

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

flushall危險命令

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檔案)

注:一臺伺服器的

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"