溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

NoSQL - redis 備份/主從

發(fā)布時(shí)間:2020-06-30 12:29:20 來源:網(wǎng)絡(luò) 閱讀:1146 作者:Ohimma 欄目:關(guān)系型數(shù)據(jù)庫

redis持久化 – 兩種方式

redis提供了兩種持久化的方式,分別是RDB(Redis DataBase)和AOF(Append Only File)。

官方建議:兩種方式都打開,同時(shí)進(jìn)行備份。耐久性不高的可以選快照 RDB。

RDB:就是在不同的時(shí)間點(diǎn),將redis存儲的數(shù)據(jù)生成快照并存儲到磁盤等介質(zhì)上;

優(yōu)點(diǎn):備份文件體積小,恢復(fù)速度快,fork子進(jìn)程不影響父進(jìn)程io;

缺點(diǎn):故障時(shí)丟失數(shù)據(jù)會多點(diǎn),數(shù)據(jù)集龐大時(shí),因fork進(jìn)程慢,導(dǎo)致客戶端響應(yīng)延遲;

配置:save 600 1,默認(rèn)為dump.rdb(CONFIG GET save && CONFIG GET dir .....)

AOF:就是將redis執(zhí)行過的所有寫指令記錄下來,在下次redis重新啟動(dòng)時(shí),把這些寫指令從前到后再重復(fù)執(zhí)行一遍,就可以實(shí)現(xiàn)數(shù)據(jù)恢復(fù)了,類似于mysql的binlog。根據(jù)fsync策略查找緩存指令記錄

優(yōu)點(diǎn):數(shù)據(jù)完整型好,體積過大時(shí)會自動(dòng)重寫(將100條寫入變?yōu)?條set),采用redis協(xié)議易讀懂;

缺點(diǎn):文件體積大,恢復(fù)較慢,存在fsync策略導(dǎo)致速度較慢;

配置:appendonly yes,默認(rèn)文件名appendonly.aof (CONFIG GET appendonly);

恢復(fù):比如執(zhí)行了flushall,將備份文件中此條刪除,重啟即可。

注:重寫,Redis 2.2 需要自己手動(dòng)執(zhí)行 BGREWRITEAOF 命令;2.4 則可以自動(dòng)觸發(fā) AOF 重寫。

AOF文件出錯(cuò):(redis重啟時(shí)會拒絕載入aof文件)

a、備份現(xiàn)有的aof文件

b、# redis-check-aof --fix 命令行執(zhí)行對現(xiàn)有aof文件進(jìn)行修復(fù)

c、對比兩個(gè)aof文件區(qū)別,重啟服務(wù)器,載入修復(fù)后的aof備份文件

同時(shí)使用兩種備份策略,redis重啟情況下,默認(rèn)aof優(yōu)先,因?yàn)閿?shù)據(jù)完整性高。

關(guān)閉使用兩種備份策略,redis就成內(nèi)存數(shù)據(jù)庫了,和memcache一樣。


主從備份:

NoSQL - redis 備份/主從

架構(gòu)及原理:一主可以多從,從也可以配多從;

1、從連接到主服務(wù)器后,發(fā)送sync指令;

2、主接到sync指令后,開始執(zhí)行bgsave,將命令寫入緩沖區(qū);

3、bgsave結(jié)束后,主將保存得到的.rdb快照文件發(fā)給所有從,期間繼續(xù)記錄寫操作,telnet可驗(yàn)證;

4、從丟棄舊的快照,載入新的快照。完畢后,主繼續(xù)發(fā)送緩沖區(qū)的寫指令,從進(jìn)行增量備份。

配置:從服務(wù)器設(shè)置如下(當(dāng)然也可以在redis內(nèi)部修改,但建議還是修改配置文件)

port 6380

slaveof 192.168.1.1 6379    //配置主的IP 和端口

masterauth <password>    //配置主的密碼

slave-read-only yes               //讓從只讀,2.4以后默認(rèn)就是只讀

repl-ping-slave-period 10     //設(shè)置slave向master發(fā)起ping的頻率,每10s發(fā)起一次

再詳細(xì)的配置,見redis章節(jié)。

同步策略:

策略是,首先會嘗試進(jìn)行增量同步,如不成功,要求從機(jī)進(jìn)行全量同步,之后進(jìn)行增量同步。


主從切換

1、手動(dòng)切換

redis-cli -n 6379 shutdown   //關(guān)掉主

redis-cli -p 6380 slaveof NO ONE   //將從設(shè)為主,插入 set ddd aaa測試是否成功

cp -f /redis2/dump.rdb  /redis/     //主恢復(fù)后,將從的dump拷貝到主下

redis-server  /redis/master.conf   //啟動(dòng)主(要確保從的save設(shè)置已生效)

redis-cli -p 6380 slaveof 192.168.10.1 6379  //將從再切換為從,即 ok


2、自動(dòng)切換 sentinel

暫時(shí)先不了解,參考http://www.cnblogs.com/Xrinehart/p/3502198.html 





向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI