

下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Redis的兩種持久化式及使場(chǎng)景分析Redis提供的持久化機(jī)制,以及好處:Redis提供 RDB 和 AOF 兩種持久化機(jī)制 , 有了持久化機(jī)制我們基本上就可以避免進(jìn)程異常退出時(shí)所造成的數(shù)據(jù)丟失的問(wèn)題了,Redis能在下次重啟的時(shí)候利之間產(chǎn)的持久化件實(shí)現(xiàn)數(shù)據(jù)恢復(fù)。、持久化機(jī)制之 RDB我們所謂的RDB持久化就是指的講當(dāng)前進(jìn)程的數(shù)據(jù)成快照存到磁盤中,觸發(fā)RDB機(jī)制分為動(dòng)觸發(fā)與動(dòng)觸發(fā)動(dòng)觸發(fā) RDBsave命令,但是save命令將會(huì)阻塞我們的Redis服務(wù)器直到RDB完成,所以真實(shí)的環(huán)境中般不會(huì)使該命令。bgsave命令,使該命令Redis會(huì)fork個(gè)進(jìn)程來(lái)負(fù)責(zé)RDB持久化,完成持久化后動(dòng)結(jié)束進(jìn)程,
2、所以阻塞只發(fā)在fork的階段。動(dòng)觸發(fā) RDB動(dòng)觸發(fā)RDB只要在redis的conf 配置件中配置 save相關(guān)的配置即可,如 save m n,這就代表在m秒內(nèi)我們的數(shù)據(jù)發(fā)了n次修改就會(huì)使“bgsave”命令動(dòng)觸發(fā)RDB,如不需要即#將下圖的 save 900 1;save 300 10;save 60 10000 注釋即可# save # Will save the DB if both the given number of seconds and the given# number of write operations against the DB occurred.# In the
3、example below the behaviour will be to save:# after 900 sec (15 min) if at least 1 key changed# after 300 sec (5 min) if at least 10 keys changed# after 60 sec if at least 10000 keys changed# Note: you can disable saving completely by commenting out all save lines.# save save 900 1 #9001此修改save 300
4、10 #30010此修改save 60 10000 #6010000此修改RDB注意事項(xiàng)1、若動(dòng)觸發(fā)RDB般使bgsave命令,動(dòng)觸發(fā)默認(rèn)使的就是bgsave命令2、執(zhí)bgsave命令,Redis會(huì)判斷是否存在正在執(zhí) RDB的進(jìn)程,如果存在了則直接返回3、進(jìn)程fork完之后,bgsave命令將會(huì)返回Backgroud saving started 之后就不再阻塞進(jìn)程了。4、Redis將RDB件保存在dir配置的指定的錄下,并且件名為配置的dbfilename,也可以通過(guò)執(zhí)config set dir dirpath與config set dbfilename 新的件名字# The filena
5、me where to dump the DBdbfilename dump.rdb# above using the dbfilename configuration directive.# The Append Only File will also be created inside this directory.# Note that you must specify a directory here, not a file name.dir /redis_persist/、持久化機(jī)制之 AOFAOF持久化是以獨(dú)的志記錄每次寫(xiě)命令,重啟Redis的時(shí)候再重新執(zhí)AOF件中命令以達(dá)到恢復(fù)數(shù)
6、據(jù),所以AOF主要就是解決持久化的實(shí)時(shí)性。、1)、所有的寫(xiě)的命令都會(huì)被追加到aof_buf這么個(gè)緩沖區(qū)中2)、接著AOF緩沖區(qū)根據(jù)對(duì)應(yīng)的同步策略向磁盤做同步的操作,這說(shuō)下同步策略,同步策略可以通過(guò)修改redis配置件中的參數(shù)appendfsync進(jìn)配置。3)、隨著AOF件變,定期對(duì)件進(jìn)重寫(xiě)操作來(lái)壓縮件4)、Redis服務(wù)器重啟的時(shí)候就會(huì)加載AOF件來(lái)恢復(fù)數(shù)據(jù)1)、也就是說(shuō)如果開(kāi)啟了AOF持久化,我們使redis輸 set testkey testValue,在AOF的緩沖區(qū)就會(huì)追加這么條本*3rn$3rnsetrn$7rntestkeyrn$9rntestValuern:6379 set te
7、stkey testValueOK-AOF*3rn$3rnsetrn$7rntestkeyrn$9rntestValuernRedisrn分隔這第代表參數(shù)數(shù)量$3代表有三個(gè)參數(shù) set testkey testValue參數(shù)的字節(jié)數(shù)分別為3 7 9所以翻譯出來(lái)就是*3testValue2)、接著AOF對(duì)緩沖區(qū)進(jìn)同步操作會(huì)按照我們配置的如下策略向磁盤進(jìn)同步redis配置件參數(shù)appendfsync說(shuō)明可配置的值alwayseverysecno配置說(shuō)明命令寫(xiě)緩沖區(qū)后調(diào)系統(tǒng)write操作,fsync同步件操作由專門的線程每秒調(diào)次命令寫(xiě)緩沖區(qū)后調(diào)系統(tǒng)write操作,不對(duì)AOF件做fsync同步,同步操
8、作由系統(tǒng)負(fù)責(zé),最遲30秒同步# no: dont fsync, just let the OS flush the data when it wants. Faster.# always: fsync after every write to the append only log. Slow, Safest.# everysec: fsync only one time every second. Compromise.# More details please check the following article:# /post/redis-persistence-demystified
9、.html# appendfsync alwaysappendfsync everysec# appendfsync no若我們配置的為always,則每次寫(xiě)緩沖區(qū)都會(huì)同步AOF件,這樣會(huì)嚴(yán)重影響redis性能,因?yàn)槠胀ù疟PRedis持擊敗TPS寫(xiě)若配置為No,那每次同步AOF件的周期不可控,這樣如果還沒(méi)有進(jìn)同步,服務(wù)就掛了那數(shù)據(jù)的安全性沒(méi)法保證了配置為everysec是最佳的同步策略也是redis默認(rèn)的同步策略,每秒同步次,也就是說(shuō)就算系統(tǒng)宕機(jī)了最多丟失1秒的數(shù)據(jù)并且性能也沒(méi)有太影響3)、接著redisr對(duì)AOF件進(jìn)定期的重寫(xiě)操作來(lái)壓縮件,重寫(xiě)操作也就是只保留寫(xiě)命令忽略delkey hdel
10、key srem key 等,并且將多個(gè)命令如 lpush list a lpush list b 合并到起4)、在重啟redis再加載持久化件達(dá)到恢復(fù)數(shù)據(jù)的的,這有個(gè)問(wèn)題就是AOF和RDB都可以來(lái)持久化,那Redis加載持久化件的順序是怎樣的,Redis默認(rèn)是加載AOF件,如果沒(méi)有AOF才去加載RDB。三、RDB與AOF優(yōu)劣勢(shì)分析優(yōu)勢(shì):RDB只代表某個(gè)時(shí)間點(diǎn)上的數(shù)據(jù)快照,所以適于備份與全量復(fù)制,如天進(jìn)備份次。Redis再加載RDB件恢復(fù)數(shù)據(jù)遠(yuǎn)快于AOF件性能上考慮RDB優(yōu)于AOF,因?yàn)槲覀儽4鍾DB件只需fork次進(jìn)程進(jìn)保存操作,進(jìn)程沒(méi)有對(duì)磁盤I/O劣勢(shì):RDB沒(méi)辦法做到實(shí)時(shí)的持久化數(shù)據(jù),因?yàn)閒ork是重量級(jí)別的操作,頻繁執(zhí)成本過(guò)RDB需要經(jīng)常fork進(jìn)程來(lái)保存數(shù)據(jù)集到磁盤,當(dāng)數(shù)據(jù)集較額時(shí)候,fork的過(guò)程是較耗時(shí)的,可能會(huì)導(dǎo)致redis在些毫秒級(jí)不能響應(yīng)客服端請(qǐng)求版本的Redis法兼容新版本的RDB件優(yōu)勢(shì):通過(guò)配置同步策略基本能夠達(dá)到實(shí)時(shí)持久化數(shù)據(jù),如配置為everysec,則每秒同步次AOF件,也就是說(shuō)最多丟失秒鐘的數(shù)據(jù),兼顧了性能與數(shù)據(jù)的安全性AOF 件是個(gè)只進(jìn)追加操作的志件(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第1章 信息時(shí)代-信息與信息技術(shù) 第2節(jié) 信息技術(shù)及其發(fā)展 教學(xué)設(shè)計(jì) 2023-2024學(xué)年河大版(2023)初中信息技術(shù)第一冊(cè)
- 采購(gòu)成本降低方案計(jì)劃
- 兒童肥胖的生理影響及治療
- 全球化背景下的營(yíng)養(yǎng)與健康
- 班級(jí)文化建設(shè)的實(shí)踐與探索計(jì)劃
- 企業(yè)創(chuàng)新文化的構(gòu)建與傳承
- 全民健身戰(zhàn)略在公共空間的應(yīng)用推廣研究
- 2024年高考數(shù)學(xué)專項(xiàng)復(fù)習(xí):橢圓(解析版)
- 找規(guī)律(單元測(cè)試)-2024-2025學(xué)年六年級(jí)數(shù)學(xué)下冊(cè) 人教版
- 企業(yè)合并報(bào)表的數(shù)字化處理技術(shù)
- 《電工電子技術(shù)基礎(chǔ)》高職全套教學(xué)課件
- 慢性血栓栓塞性肺動(dòng)脈高壓診斷與治療指南(2024版)解讀
- 中國(guó)慢性便秘診治指南課件
- 2024年同等學(xué)力申碩-同等學(xué)力(經(jīng)濟(jì)學(xué))筆試考試歷年真題含答案
- Module 5 Unit 2 公開(kāi)課教學(xué)設(shè)計(jì)(外研版九年級(jí)下冊(cè)教案)
- AQ-T 3002-2021阻隔防爆橇裝式加油(氣)裝置技術(shù)要求
- (正式版)QBT 8022-2024 冷凍飲品 食用冰
- 危大工程安全檢查錄表
- 北師大版心理健康四年級(jí)下冊(cè)全冊(cè)教案教學(xué)設(shè)計(jì)
- 品牌服裝設(shè)計(jì)課件
- 肝病科進(jìn)修總結(jié)匯報(bào)
評(píng)論
0/150
提交評(píng)論