什么是RDB?
1.redis數(shù)據(jù)存儲(chǔ)在內(nèi)存中,通過(guò)save或bgsave可以在硬盤上創(chuàng)建一個(gè)rdb的二進(jìn)制文件。這個(gè)rdb文件相當(dāng)于redis的數(shù)據(jù)的快照。
2.Redis 重啟后,會(huì)將硬盤中rdb文件內(nèi)容載入內(nèi)存中。
3.rdb還可以作為復(fù)制文件傳輸?shù)拿浇?。如redis主從復(fù)制就是通過(guò)rdb傳輸?shù)摹?/p>創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的光澤網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
一、save命令
1.save指令同步創(chuàng)建快照。
Redis客戶端發(fā)送save命令,redis server會(huì)將內(nèi)存中的所有數(shù)據(jù)打包,在硬盤上創(chuàng)建rdb文件并保存數(shù)據(jù)。
2.save同步阻塞其他客戶端請(qǐng)求。
因redis是單線程,在執(zhí)行save創(chuàng)建rdb文件時(shí),會(huì)阻塞其他redis客戶端的請(qǐng)求。當(dāng)rdb創(chuàng)建完成時(shí),阻塞結(jié)束。
二、bgsave命令
1.bgsave異步創(chuàng)建快照
客戶端發(fā)送bgsave 命令,redis server 會(huì)fork一個(gè)子進(jìn)程,子進(jìn)程將redis server內(nèi)存中的數(shù)據(jù)打包到硬盤中的rdb文件中。
2.bgsave異步非阻塞
redis服務(wù)端在fork子進(jìn)程的過(guò)程中,會(huì)短時(shí)間阻塞其他客戶端請(qǐng)求(時(shí)間較短,可以忽略不計(jì)),子進(jìn)程創(chuàng)建完成就不會(huì)阻塞其他客戶端的請(qǐng)求。子進(jìn)程創(chuàng)建成功后異步創(chuàng)建rdb文件,并在保存完成之后向主進(jìn)程發(fā)送信號(hào),通知保存已完成。fork子進(jìn)程的過(guò)程會(huì)很快,fork子進(jìn)程會(huì)消耗額外內(nèi)存。
如圖所示,進(jìn)程名稱為redis-rdb-bgsave
三、自動(dòng)觸發(fā)
redis.conf中創(chuàng)建快照的配置
save 900 1
save 300 10
save 60 10000
四、文件生成策略
先生成臨時(shí)文件,待快照創(chuàng)建完成時(shí),用臨時(shí)文件區(qū)替換替換dump.rdb文件。
五、其他觸發(fā)機(jī)制
1.master/slave需要進(jìn)行全量復(fù)制時(shí),master服務(wù)會(huì)進(jìn)行bgsave操作
2.debug reload 調(diào)試重啟
3.執(zhí)行shutdown時(shí)
RDB的特征:
優(yōu)點(diǎn):
1.適合大規(guī)模的數(shù)據(jù)恢復(fù),對(duì)數(shù)據(jù)完整性和一致性要求不高。
缺點(diǎn):
1.redis間隔一段時(shí)間進(jìn)行創(chuàng)建rdb快照,如果再最后一次創(chuàng)建快照后宕機(jī),最后一次快照之后所修改的數(shù)據(jù)將丟失。
2.bgsave操作(包含自動(dòng)觸發(fā)創(chuàng)建rdb)在fork子進(jìn)程進(jìn)行創(chuàng)建rdb快照,會(huì)拷貝一份內(nèi)存中的數(shù)據(jù),會(huì)消耗一定量的內(nèi)存。
動(dòng)態(tài)關(guān)閉自動(dòng)創(chuàng)建快照
127.0.0.1:6379>config save ""
查看rdb文件位置
127.0.0.1:6379> CONFIG GET dir
1) "dir"
2) "/var/lib/redis"
redis.conf中與rdb相關(guān)配置
#指定rdb文件名
dbfilename dump-${port}.rdb
#指定數(shù)據(jù)存儲(chǔ)目錄(工作目錄)
dir ./
#bgsave發(fā)生錯(cuò)誤時(shí),停止寫入數(shù)據(jù)
stop-writes-on-bgsave-error yes
#采用壓縮方式記錄數(shù)據(jù)
rdbcompression yes
分享標(biāo)題:Redis持久化之RDB快照
本文來(lái)源:http://jinyejixie.com/article32/pocipc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、定制網(wǎng)站、定制開(kāi)發(fā)、品牌網(wǎng)站制作、搜索引擎優(yōu)化、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)