何為Redis?
Redis是內(nèi)存中的鍵值緩存和存儲(即數(shù)據(jù)庫),也可以永久保存到磁盤。在本文中,你將了解,如何在Centos 7上備份還原您的redis數(shù)據(jù)庫。
備份還原說明
默認情況下,Redis數(shù)據(jù)將保存到磁盤中的.rdb文件中,該文件是Redis數(shù)據(jù)集的時間點快照??煺帐前凑罩付ǖ臅r間間隔進行的,所以對于備份來說是完美的。
1.數(shù)據(jù)備份篇
在Centos 7和其他Linux發(fā)行版中,Redis數(shù)據(jù)庫目錄默認是/var/lib/redis。但是,如果您更改了redis存儲位置,則可以通過鍵入以下命令查找:
[root@renwolecom ~]# find / -name *rdb
使用redis-cli管理工具進入數(shù)據(jù)庫:
[root@renwolecom ~]# redis-cli
由于大部分數(shù)據(jù)都運行在內(nèi)存中,redis只會每隔一段時間保存一次,為獲取最新副本,請執(zhí)行以下命令:
10.10.204.64:6379> save
OK
(1.02s)
另外,如果Redis設(shè)置了用戶認證,就需要先驗證,再保存,例如:
10.10.204.64:6379> auth RenwoleQxl5qpKHrh9khuTW
10.10.204.64:6379> save
之后進行備份即可,例如:
[root@renwolecom ~]# cp /var/lib/redis/dump.rdb /apps/redis-backup-20180129
2.數(shù)據(jù)還原篇
恢復(fù)備份需要您使用恢復(fù)文件替換現(xiàn)有的Redis數(shù)據(jù)庫文件。為保證原始數(shù)據(jù)文件不被破壞,我們建議盡可能恢復(fù)到新的Redis服務(wù)器。
停止Redis數(shù)據(jù)庫,一旦停止,Redis數(shù)據(jù)庫處于脫機狀態(tài)。
[root@renwolecom ~]# systemctl stop redis
如果恢復(fù)到原始Redis服務(wù)器,請重命名當前數(shù)據(jù)文件,之后再進行恢復(fù):
[root@renwolecom ~]# mv /var/lib/redis/dump.rdb /var/lib/redis/dump.rdb.old
[root@renwolecom ~]# cp -p /apps/redis-backup-20180129/dump.rdb /var/lib/redis/dump.rdb
設(shè)置dump.rdb文件權(quán)限,拷貝過來的數(shù)據(jù)文件,可能不具備Redis用戶及讀取權(quán)限,需要手動賦予:
[root@renwolecom ~]# chown redis:redis /var/lib/redis/dump.rdb
[root@renwolecom ~]# chmod 660 /var/lib/redis/dump.rdb
啟動redis
[root@renwolecom ~]# systemctl start redis
大功告成!現(xiàn)在你可以登錄redis核實數(shù)據(jù)了。
注意說明:
根據(jù)需求,關(guān)閉AOF,AOF跟蹤每個寫操作到Redis數(shù)據(jù)庫。由于我們試圖從時間點備份中恢復(fù),所以我們不希望Redis重新創(chuàng)建存儲在其AOF文件中的操作。
是否開啟AOF可以通過查看文件獲悉:
[root@renwolecom ~]# ls /var/lib/redis/
如果看到.aof后綴的文件,說明你啟用了AOF。
重命名.aof文件,
[root@renwolecom ~]# mv /var/lib/redis/*.aof /var/lib/redis/appendonly.aof.old
如果有多個.aof文件,請單獨命名。
編輯你的Redis配置文件暫時關(guān)閉AOF:
[root@renwolecom ~]# vim /etc/redis/redis.conf
appendonly no
如果備份期間有任何疑問,歡迎留言。在此也非常感謝大家對腳本之家網(wǎng)站的支持!