Redis使用rdb檔案恢復資料

2021-10-04 06:00:28 字數 3274 閱讀 9577

只在單台redis恢復,未使用集群。

注意3個配置引數:

dbfilename dump.rdb

dir ./data

[root@izbp143t3oxhfc3ar7jey0z redis-4.0.12]#

redis-cli

127.0.0.1:6379> keys *

1) "

user

"127.0.0.1:6379>config get dir

1) "

dir"

2) "

/root/redis-4.0.12/data

"127.0.0.1:6379> set k1 11ok

127.0.0.1:6379> set k2 11ok

127.0.0.1:6379> set k3 11ok

127.0.0.1:6379> set k4 11ok

127.0.0.1:6379> set k5 11ok

127.0.0.1:6379> set k6 11ok

127.0.0.1:6379> set k7 11ok

127.0.0.1:6379> set k8 11ok

127.0.0.1:6379> set k9 11ok

127.0.0.1:6379> set k10 11ok

連續set10個,就會產生備份

[root@izbp143t3oxhfc3ar7jey0z data]#

lltotal 16

-rw-r--r-- 1 root root 168 mar 21 14:38dump.rdb

-rw-r--r-- 1 root root 9223 mar 21 14:38redis.log

[root@izbp143t3oxhfc3ar7jey0z data]#

mv dump.rdb dump.rdb.bak

[root@izbp143t3oxhfc3ar7jey0z data]#

lltotal 16

-rw-r--r-- 1 root root 168 mar 21 14:38dump.rdb.bak

-rw-r--r-- 1 root root 9223 mar 21 14:38 redis.log

接著清空整個資料

127.0.0.1:6379>flushall

ok127.0.0.1:6379> exit

[root@izbp143t3oxhfc3ar7jey0z data]#

lltotal 20

-rw-r--r-- 1 root root 93 mar 21 14:40dump.rdb

-rw-r--r-- 1 root root 168 mar 21 14:38dump.rdb.bak

-rw-r--r-- 1 root root 9270 mar 21 14:40 redis.log

也會產生乙個新的rdb,在重新啟動redis

[root@izbp143t3oxhfc3ar7jey0z redis-4.0.12]#

redis-cli shutdown

[root@izbp143t3oxhfc3ar7jey0z redis-4.0.12]#

redis-server redis.conf

[root@izbp143t3oxhfc3ar7jey0z redis-4.0.12]#

lsof -i:6379

command pid user fd type device size/off node name

redis-ser 18150 root 6u ipv6 534722 0t0 tcp *:6379(listen)

redis-ser 18150 root 7u ipv4 534723 0t0 tcp *:6379(listen)

[root@izbp143t3oxhfc3ar7jey0z redis-4.0.12]#

redis-cli

127.0.0.1:6379> keys *(empty list or set)

127.0.0.1:6379> exit

發現沒有資料,是清空後有乙個空的備份檔案

[root@izbp143t3oxhfc3ar7jey0z data]#

lltotal 20

-rw-r--r-- 1 root root 93 mar 21 14:41dump.rdb

-rw-r--r-- 1 root root 168 mar 21 14:38dump.rdb.bak

-rw-r--r-- 1 root root 12281 mar 21 14:41redis.log

[root@izbp143t3oxhfc3ar7jey0z data]#

rm -rf dump.rdb

[root@izbp143t3oxhfc3ar7jey0z data]#

mv dump.rdb.bak dump.rdb

[root@izbp143t3oxhfc3ar7jey0z data]#

lltotal 16

-rw-r--r-- 1 root root 168 mar 21 14:38dump.rdb

-rw-r--r-- 1 root root 12281 mar 21 14:41redis.log

[root@izbp143t3oxhfc3ar7jey0z data]#

[root@izbp143t3oxhfc3ar7jey0z redis-4.0.12]#

redis-cli shutdown

[root@izbp143t3oxhfc3ar7jey0z redis-4.0.12]#

redis-server redis.conf

[root@izbp143t3oxhfc3ar7jey0z redis-4.0.12]#

redis-cli

127.0.0.1:6379> keys *

1) "

k10"

2) "k3"

3) "k4"

4) "k2"

5) "k5"

6) "k6"

7) "k1"

8) "k9"

9) "

user

"10) "k7"

11) "k8"

127.0.0.1:6379>

把之前產生的rdb檔案改名,重新啟動,發現就有資料了。

redis中的RDB快照檔案恢復

在redis中我們使用rdb快照檔案恢復資料時,如果我們開啟了redis主從,我們需要先把redis從關掉,然後我們才能來執行redisrdb快照檔案恢復 因為從庫開啟,會導致redis主庫重啟讀取不到rdb檔案,會導致重啟過後rdb檔案是redis初始化的rdb,不是你要恢復的rdb檔案,我們把r...

Redis老rdb檔案產生髒資料

背景 機房級掉電演練,機房1的redis集群被下電,現網集群沒有開啟持久化,靠雙活機房資料實時同步做資料可靠性方案,機房1的集群恢復後,需要先恢復機房2到機房1的實時同步 增量 然後通過指令碼執行存量資料全量同步,由於機房1為空集群,所以為了提公升全量資料同步效能,一般不要求加 replace引數,...

如何解析 redis 的 rdb 檔案

目錄常見問題 faq 參考pip install rdbtools python lzf或者 git clone cd redis rdb tools sudo python setup.py installusage usage rdb options path to dump.rdb examp...