您好,登錄后才能下訂單哦!
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一樣。
主從備份:
架構(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
免責(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)容。