只在單台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>flushallok127.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...