成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

aof日志文件的用處有哪些-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)aof日志文件的用處有哪些,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

滁州ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

在Redis配置文件中有一個叫appendonly的選項,可以寫yes或no.這個選項就是負責是否開啟AOF日志的開關(guān).AOF日志,你可以簡單理解為MySQL binlog一樣的東西,作用就是記錄每次的寫操作,在遇到斷電等問題時可以用它來恢復(fù)數(shù)據(jù)庫狀態(tài).但是他不是bin的,而是text的.一行一行,寫得很規(guī)范.如果你是一臺redis,那你也能人肉通過它恢復(fù)數(shù)據(jù)。下面創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,小編來講解下aof(append only file)日志文件有哪些用處?
aof(append only file)日志文件有哪些用處

Redis有三種類型的落地文件:

數(shù)據(jù)文件-在配置中可設(shè)置其位置及文件名,默認文件名dump.rdb

日志文件-在配置中也可以配置.當然,在你是以daemon方式運行的時候,這個值就不要設(shè)置為stdout了,這么設(shè)置會自動被換成/dev/null

AOF文件-也就是我們這篇文章的主角,他的作用是用于數(shù)據(jù)恢復(fù).他除了設(shè)置是否開啟外,還可以設(shè)置開啟后以何種方式寫日志.這個何種一共是三種,1是每次寫操作都保證將fsync()來完成的,2是每秒調(diào)用一次fsync(),3是從不調(diào)用,讓操作系統(tǒng)自己來同步.當然,設(shè)置為不同,效率會不同,你的數(shù)據(jù)損失風險也不同.

運行流程

既然是log文件,而且是要用于恢復(fù)的,那么我們動動腳趾都能想到,這玩意肯定會越來越大,不管你的應(yīng)用是大是小,如果AOF文件只增不減的話,那文件將會無限長大,這個問題是所有binlog都會遇到的.而通常遇到這種問題都會有一個rotate方案.就是當日志達到一定大小或者每隔一段時間將日志寫到新的一個文件中,舊日志文件可以用來備份或其它.

而Redis的AOF還和rotate略有不同,他用了一種比較簡單的方法,就是先給當前的所有數(shù)據(jù)做一個快照.然后再在這個快照的基礎(chǔ)上寫接下來的日志.

照快照的好處是,你之前可能用了10w次操作共改變了100條數(shù)據(jù)(比如在一條數(shù)據(jù)上進行了多次操作).那這時你AOF中的10w條寫操作記錄就變成了100條記錄.相當于將前面的執(zhí)行全部合并了.原本很大AOF變小了.

執(zhí)行這個操作的命令是:BGREWRITEAOF (background rewrite append only file)

這個快照長什么樣呢?基本和一般的寫日志沒什么兩樣,也是一條一條的寫記錄..比如現(xiàn)在Redis中總共存了3條string類型的數(shù)據(jù)a=>1,b=>2,c=>3.那這個快照的基本內(nèi)容就是寫入a=>1,寫入b=>2,寫入c=>3.

這時候要用AOF進行恢復(fù)的時候,只要先執(zhí)行了前面幾條,就能夠恢復(fù)當前狀態(tài),然后再執(zhí)行之后來的寫操作,就能完全重現(xiàn)數(shù)據(jù)了.
aof(append only file)日志文件有哪些用處
內(nèi)部實現(xiàn)

我們大概知道了執(zhí)行BGREWRITEAOF時都發(fā)生了什么,下面來說一下Redis是如何實現(xiàn)的.分下面幾步:

fork! Redis通過fork產(chǎn)生子進程.

子進程對當前數(shù)據(jù)執(zhí)行遍歷操作,將當前所有數(shù)據(jù)都生成一條寫入日志,將這些日志寫入一個臨時文件.(其實是子進程寫了一個臨時文件,又再rename成了另一個臨時文件)

父子進程是并行執(zhí)行的,在子進程遍歷并寫臨時文件的時候,父進程在照常接收請求,處理請求,寫AOF,不過這時他是把新來的AOF寫在一個緩沖區(qū)中.

當子進程完成遍歷操作,寫完臨時文件后,就會退出.這時父進程的wait3函數(shù)會接收到子進程退出的消息,他會把自己現(xiàn)在收集在緩沖區(qū)中的所有AOF追加在臨時文件中.

最后一步,把臨時文件rename一下,改名為appendonly.aof,這時原來的aof文件被覆蓋.整個過程完成.

如果你的AOF文件稍微大點,你可以在一個終端執(zhí)行BGREWRITEAOF,然后立刻ls 連著查看幾次redis的data目錄,就可以看到,先生成了一個臨時文件,臨時文件比原來的appendonly.aof小一些,然后臨時文件消失,而原來的appendonly.aof變小了,其實就是臨時文件rename成了appendonly.aof..覆蓋了原來的大文件.看起來像是臨時文件消失了。


看完上述內(nèi)容,你們對aof日志文件的用處有哪些有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

分享題目:aof日志文件的用處有哪些-創(chuàng)新互聯(lián)
分享鏈接:http://jinyejixie.com/article6/csosog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站內(nèi)鏈、做網(wǎng)站、手機網(wǎng)站建設(shè)App設(shè)計、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司
佛冈县| 阆中市| 堆龙德庆县| 罗源县| 启东市| 林口县| 射洪县| 敦煌市| 昆山市| 诏安县| 鄂伦春自治旗| 泸西县| 易门县| 玛多县| 西和县| 双江| 罗田县| 宜阳县| 峡江县| 奇台县| 衡东县| 水城县| 准格尔旗| 和林格尔县| 阜城县| 蓬莱市| 修文县| 清涧县| 沧源| 德化县| 河南省| 东莞市| 炎陵县| 盈江县| 黄冈市| 汝城县| 綦江县| 资源县| 淮安市| 肥乡县| 河池市|