内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

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.這個選項就是負(fù)責(zé)是否開啟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è)置其位置及文件名,默認(rèn)文件名dump.rdb

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

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

運行流程

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

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

照快照的好處是,你之前可能用了10w次操作共改變了100條數(shù)據(jù)(比如在一條數(shù)據(jù)上進行了多次操作).那這時你AOF中的10w條寫操作記錄就變成了100條記錄.相當(dāng)于將前面的執(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ù)當(dāng)前狀態(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)生子進程.

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

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

當(dāng)子進程完成遍歷操作,寫完臨時文件后,就會退出.這時父進程的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://www.rwnh.cn/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è)計公司
伊吾县| 咸丰县| 永仁县| 南汇区| 柏乡县| 涟水县| 比如县| 丽江市| 呼和浩特市| 南充市| 拉孜县| 木里| 射洪县| 涟源市| 桃源县| 河西区| 锦屏县| 汤阴县| 昭苏县| 贞丰县| 巴青县| 攀枝花市| 玉田县| 峨山| 巩义市| 石林| 双牌县| 阿拉尔市| 高要市| 准格尔旗| 青海省| 即墨市| 德化县| 开化县| 高碑店市| 虞城县| 保康县| 门头沟区| 平顶山市| 达州市| 濉溪县|