中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站建設(shè)保教長沙seo優(yōu)化哪家好

網(wǎng)站建設(shè)保教,長沙seo優(yōu)化哪家好,企業(yè)宣傳ppt的方案模板,男女性做那個(gè)視頻網(wǎng)站📫作者簡介:小明java問道之路,2022年度博客之星全國TOP3,專注于后端、中間件、計(jì)算機(jī)底層、架構(gòu)設(shè)計(jì)演進(jìn)與穩(wěn)定性建工設(shè)優(yōu)化。文章內(nèi)容兼具廣度深度、大廠技術(shù)方案,對(duì)待技術(shù)喜歡推理加驗(yàn)證,就職于知名金融公…

📫作者簡介:小明java問道之路,2022年度博客之星全國TOP3,專注于后端、中間件、計(jì)算機(jī)底層、架構(gòu)設(shè)計(jì)演進(jìn)與穩(wěn)定性建工設(shè)優(yōu)化。文章內(nèi)容兼具廣度深度、大廠技術(shù)方案,對(duì)待技術(shù)喜歡推理加驗(yàn)證,就職于知名金融公司后端高級(jí)工程師。

? ? ? ??

📫 熱衷分享,喜歡原創(chuàng)~ 關(guān)注我會(huì)給你帶來一些不一樣的認(rèn)知和成長。

? ? ? ??

🏆 2022博客之星TOP3 | CSDN博客專家 | 后端領(lǐng)域優(yōu)質(zhì)創(chuàng)作者 | CSDN內(nèi)容合伙人

🏆 InfoQ(極客邦)簽約作者、阿里云專家 | 簽約博主、51CTO專家 | TOP紅人、華為云享專家

????????

🔥如果此文還不錯(cuò)的話,還請(qǐng)👍關(guān)注、點(diǎn)贊、收藏三連支持👍一下博主~?


🍅 文末獲取聯(lián)系 🍅??👇🏻 精彩專欄推薦訂閱收藏 👇🏻

專欄系列(點(diǎn)擊解鎖)

學(xué)習(xí)路線(點(diǎn)擊解鎖)

知識(shí)定位

🔥Redis從入門到精通與實(shí)戰(zhàn)🔥

Redis從入門到精通與實(shí)戰(zhàn)

圍繞原理源碼講解Redis面試知識(shí)點(diǎn)與實(shí)戰(zhàn)

🔥MySQL從入門到精通🔥

MySQL從入門到精通

全面講解MySQL知識(shí)與企業(yè)級(jí)MySQL實(shí)戰(zhàn)

🔥計(jì)算機(jī)底層原理🔥

深入理解計(jì)算機(jī)系統(tǒng)CSAPP

以深入理解計(jì)算機(jī)系統(tǒng)為基石,構(gòu)件計(jì)算機(jī)體系和計(jì)算機(jī)思維

Linux內(nèi)核源碼解析

圍繞Linux內(nèi)核講解計(jì)算機(jī)底層原理與并發(fā)

🔥數(shù)據(jù)結(jié)構(gòu)與企業(yè)題庫精講🔥

數(shù)據(jù)結(jié)構(gòu)與企業(yè)題庫精講

結(jié)合工作經(jīng)驗(yàn)深入淺出,適合各層次,筆試面試算法題精講

🔥互聯(lián)網(wǎng)架構(gòu)分析與實(shí)戰(zhàn)🔥

企業(yè)系統(tǒng)架構(gòu)分析實(shí)踐與落地

行業(yè)最前沿視角,專注于技術(shù)架構(gòu)升級(jí)路線、架構(gòu)實(shí)踐

互聯(lián)網(wǎng)企業(yè)防資損實(shí)踐

互聯(lián)網(wǎng)金融公司的防資損方法論、代碼與實(shí)踐

🔥Java全棧白寶書🔥

精通Java8與函數(shù)式編程

本專欄以實(shí)戰(zhàn)為基礎(chǔ),逐步深入Java8以及未來的編程模式

深入理解JVM

詳細(xì)介紹內(nèi)存區(qū)域、字節(jié)碼、方法底層,類加載和GC等知識(shí)

深入理解高并發(fā)編程

深入Liunx內(nèi)核、匯編、C++全方位理解并發(fā)編程

Spring源碼分析

Spring核心七IOC/AOP等源碼分析

MyBatis源碼分析

MyBatis核心源碼分析

Java核心技術(shù)

只講Java核心技術(shù)

本文目錄

本文目錄

本文導(dǎo)讀

一、什么是Redis? AOF

二、如何開啟AOF持久化

三、AOF的原理

1、AOF持久化實(shí)現(xiàn)

2、AOF數(shù)據(jù)恢復(fù)

3、AOF三種寫回硬盤策略

4、AOF重寫機(jī)制

5、為什么Redis AOF要先執(zhí)行命令后寫日志?

四、AOF和RDB對(duì)比???????

五、Redis4.0的混合持久化模式

總結(jié)


本文導(dǎo)讀

本文為Redis持久化系列第二篇,上一篇【Redis】Redis持久化之RDB詳解,本文講解兼具廣度與深度,首先講解什么是RedisAOF、如何開啟AOF持久化,深入其AOF的原理,AOF持久化實(shí)現(xiàn)、AOF數(shù)據(jù)恢復(fù)、AOF三種寫回硬盤策略、AOF重寫機(jī)制,解析RedisAOF要先執(zhí)行命令后寫日志,以及在實(shí)戰(zhàn)過程中AOF和RDB對(duì)比???????,最后擴(kuò)展Redis4.0新特性的混合持久化模式。

一、什么是Redis? AOF

Redis提供了兩種持久性機(jī)制:一種是RDB也稱為快照模式,一種是AOF日志也稱為追加模式。

AOF是一個(gè)日志文件,Redis的每個(gè)命令都將以AOF格式寫入AOF文件,AOF日志僅記錄修改內(nèi)存的指令,AOF日志記錄不同于MySQL先寫入日志然后再執(zhí)行操作(兩階段提交),AOF是執(zhí)行成功的命令,然后記錄命令在日志文件中,當(dāng)需要恢復(fù)時(shí),直接導(dǎo)入AOF文件以執(zhí)行其中的記錄,并且記錄是實(shí)時(shí)的,AOF日志存儲(chǔ)Redis服務(wù)器的順序指令序列。

二、如何開啟AOF持久化

AOF 機(jī)制默認(rèn)處于未開啟狀態(tài),通過在配置文件中將appendonly參數(shù)配置為yes來啟用AOF持久性。

#修改配置文件:
vim /etc/redis/redis.conf
appendonly yes # 把 no 改為 yes#確定存儲(chǔ)文件名是否正確
appendfilename "appendonly.aof"#重啟服務(wù):
sudo /etc/init.d/redis-server restart

三、AOF的原理

每當(dāng)修改Redis的命令時(shí),服務(wù)器都會(huì)將該命令寫入appendonly.aof 文件,該文件存儲(chǔ)服務(wù)器執(zhí)行的所有修改(成功的)命令。因此,只要服務(wù)器執(zhí)行aof文件,可以達(dá)到恢復(fù)數(shù)據(jù)的目的,這個(gè)過程也稱為命令重演。

1、AOF持久化實(shí)現(xiàn)

?AOF持久性的實(shí)現(xiàn)可以分為:命令追加( append ,當(dāng)AOF持久性功能打開時(shí),Redis將在執(zhí)行寫入命令后,以協(xié)議格式(即RESP,Redis客戶端和服務(wù)器之間的通信協(xié)議)將執(zhí)行的寫入命令附加到Redis服務(wù)器維護(hù)的AOF緩沖區(qū)的末尾。)、文件寫入( write,Redis將調(diào)用flushAppendOnlyFile函數(shù),以確定是否需要在每個(gè)事件周期結(jié)束之前將AOF緩存中的內(nèi)容寫入并同步到AOF文件)、文件同步( sync )、文件重寫(rewrite)和重啟加載(load)這幾步。如下圖所示

Redis將在執(zhí)行寫操作命令會(huì)將命令追加到 server.aof_buf 緩沖區(qū),所有寫入命令都將添加到AOF緩存中,然后通過 write() 系統(tǒng)調(diào)用,將aof_buf 緩沖區(qū)中數(shù)據(jù)寫入aof文件。此時(shí),數(shù)據(jù)還沒有寫入硬盤,而是復(fù)制到內(nèi)核緩沖區(qū)的頁面緩存 page cache,等待內(nèi)核將數(shù)據(jù)寫入硬盤,內(nèi)核緩沖區(qū)中的數(shù)據(jù)何時(shí)寫入硬盤由內(nèi)核決定。

AOF緩存將根據(jù)相應(yīng)的策略與硬盤同步,AOF日志將越來越大就需要定期重寫以實(shí)現(xiàn)壓縮,當(dāng)Redis重新啟動(dòng)時(shí),可以加載AOF文件進(jìn)行數(shù)據(jù)恢復(fù)。

2、AOF數(shù)據(jù)恢復(fù)

AOF文件包含重建Redis數(shù)據(jù)所需的所有寫入命令,因此只要重新讀入并執(zhí)行保存在AOF文件中的寫入命令,Redis就可以恢復(fù)Redis關(guān)閉前的狀態(tài)。偽客戶端是指 Redis命令只能在客戶端的上下文中執(zhí)行,用于加載AOF文件的命令直接來自AOF文件,而不是網(wǎng)絡(luò)連接。因此,服務(wù)器使用沒有網(wǎng)絡(luò)連接的偽客戶端來執(zhí)行保存在AOF文件中的命令。偽客戶端執(zhí)行命令的效果與具有網(wǎng)絡(luò)連接的客戶端的效果完全相同。

3、AOF三種寫回硬盤策略

Redis 3 種寫回硬盤的策略,說的是在?redis.conf?配置文件中的?appendfsync?配置項(xiàng)可以有以下 3 種參數(shù)可填。

Redis將在結(jié)束每個(gè)事件之前調(diào)用 flushAppendOnlyFile() 函數(shù),以確定是否需要將AOF緩存中的內(nèi)容寫入并同步到AOF文件。flushAppendOnlyFile() 函數(shù)的行為由redis.conf 配置中appendfsync選項(xiàng)的值決定,有三個(gè)可選值:always、everysec和no。

Always(同步寫回):在執(zhí)行每個(gè)寫操作命令后,AOF日志數(shù)據(jù)將同步寫回硬盤;

Everysec(每秒寫回):在執(zhí)行每個(gè)寫操作命令后,將命令寫入AOF文件的內(nèi)核緩沖區(qū),然后每秒將緩沖區(qū)的內(nèi)容寫回硬盤;

No(操作系統(tǒng)控制的回寫)意味著回寫硬盤的時(shí)間不受Redis控制,而是轉(zhuǎn)移到由操作系統(tǒng)所控制的回寫入時(shí)間。也就是說,在執(zhí)行每個(gè)寫操作命令之后,該命令首先被寫入AOF文件的內(nèi)核緩沖區(qū),然后操作系統(tǒng)決定何時(shí)將緩沖區(qū)內(nèi)容寫回硬盤。

這三種方法都有缺點(diǎn):Always(同步寫回),如果每次執(zhí)行后命令都同步到瓷盤中,這會(huì)影響主線程的性能;Everysec(每秒回寫)使用每秒回寫一次的頻率,以避免同步回寫的性能開銷。雖然它減少了對(duì)系統(tǒng)性能的影響,但如果發(fā)生中斷,在最后一秒沒有中斷的命令操作仍將丟失;No(操作系統(tǒng)控制寫回)。保存到磁盤的操作由操作系統(tǒng)控制。只要AOF中沒有寫回命令,一旦服務(wù)器停機(jī),數(shù)據(jù)就會(huì)丟失;

三種AOF寫回硬盤策略的優(yōu)缺點(diǎn)
寫回策略寫回時(shí)間優(yōu)點(diǎn)缺點(diǎn)
Always同步寫回可靠性高,最大程度保證安全性性能開銷大
Everysec每秒寫回性能適中宕機(jī)時(shí)有1秒的數(shù)據(jù)丟失
No操作系統(tǒng)控制的回寫性能好宕機(jī)存在丟失數(shù)據(jù)較大

4、AOF重寫機(jī)制

重寫機(jī)制,就是重寫舊日志中的多個(gè)命令變?yōu)樾氯罩局械囊粋€(gè)命令。

假設(shè)對(duì)列表進(jìn)行n次修改后,一條數(shù)據(jù)處于“***”狀態(tài)。只有LPUSH u:list“**” 命令可以恢復(fù)數(shù)據(jù),這為n-1個(gè)命令節(jié)省了空間,AOF重寫后,日志文件將收縮,但將整個(gè)數(shù)據(jù)庫的最新數(shù)據(jù)的操作日志寫回磁盤仍然是一個(gè)耗時(shí)的過程。

重寫不會(huì)阻塞主線程,重寫過程由后臺(tái)線程bgrewriteaof完成,這也是為了避免阻塞主線程,從而導(dǎo)致數(shù)據(jù)庫性能下降。

Redis設(shè)置了一個(gè)AOF重寫緩沖區(qū),該緩沖區(qū)將在服務(wù)器創(chuàng)建子進(jìn)程后使用,當(dāng)Redis執(zhí)行寫命令時(shí),它將同時(shí)向AOF緩沖區(qū)和AOF重寫緩沖區(qū)發(fā)送寫命令。當(dāng)子進(jìn)程完成AOF重寫時(shí),它將向父進(jìn)程發(fā)送信號(hào)。在接收到信號(hào)后,父進(jìn)程將調(diào)用信號(hào)處理函數(shù)將AOF重寫緩沖區(qū)中的所有內(nèi)容寫入新的AOF文件,以確保新AOF文件保存的數(shù)據(jù)庫狀態(tài)與服務(wù)器的當(dāng)前狀態(tài)一致,并重命名新的AOF文件,自動(dòng)覆蓋現(xiàn)有AOF文件并完成新舊文件的替換繼續(xù)處理客戶端請(qǐng)求命令。

5、為什么Redis AOF要先執(zhí)行命令后寫日志?

Redis在向AOF里面記錄日志的時(shí)候,不會(huì)首先檢查這些命令。因此,如果它先記日志然后執(zhí)行命令,則可能會(huì)在日志中記錄錯(cuò)誤的命令,Redis在使用日志恢復(fù)數(shù)據(jù)時(shí)可能會(huì)出錯(cuò),如果Redis也先寫日志,然后再操作,那么AOF日志中會(huì)有許多無效/錯(cuò)誤的命令記錄。

與MySQL和其他數(shù)據(jù)庫的事務(wù)機(jī)制相比,Redis事務(wù)可以稱為弱事務(wù)。如果事務(wù)中發(fā)生錯(cuò)誤,將繼續(xù)執(zhí)行。如果事務(wù)失敗,Redis不會(huì)回滾,對(duì)于此類事務(wù),將有許多命令無法成功修改數(shù)據(jù),如果先寫日志,也會(huì)有很多無效的命令。

這兩種風(fēng)險(xiǎn)都與AOF寫回磁盤的時(shí)間有關(guān)。如果控制線寫命令,再寫AOF日志就可以解決這兩個(gè)問題。

四、AOF和RDB對(duì)比???????

RDB持久化AOF持久化
全量備份,一次保存整個(gè)數(shù)據(jù)庫。增量備份,一次只保存一個(gè)修改數(shù)據(jù)庫的命令。
每次執(zhí)行持久化操作的間隔時(shí)間較長。保存的間隔默認(rèn)為一秒鐘(Everysec)
數(shù)據(jù)保存為二進(jìn)制格式,其還原速度快。使用文本格式還原數(shù)據(jù),所以數(shù)據(jù)還原速度一般。
執(zhí)行 SAVE 命令時(shí)會(huì)阻塞服務(wù)器,但手動(dòng)或者自動(dòng)觸發(fā)的 BGSAVE 不會(huì)阻塞服務(wù)器AOF持久化無論何時(shí)都不會(huì)阻塞服務(wù)器。

1、進(jìn)行數(shù)據(jù)恢復(fù)時(shí),既有 dump.rdb文件,又有 appendonly.aof 文件,應(yīng)該首先通過appendonly.aof 恢復(fù)數(shù)據(jù),這可以最大程度地確保數(shù)據(jù)安全。

2、只需要數(shù)據(jù)備份,不太關(guān)心一小部分?jǐn)?shù)據(jù)的丟失,那么可以使用RDB模式,RDB文件也易于遷移并放入多個(gè)實(shí)例中進(jìn)行數(shù)據(jù)恢復(fù)

五、Redis4.0的混合持久化模式

Redis 4.0的新特性是混合持久化模式,混合持久化模式同時(shí)使用RDB快照和AOF日志的混合持久模式,將RDB文件內(nèi)容和增量AOF文件內(nèi)容存儲(chǔ)在同一個(gè)文件(相同的AOF格式文件)中,可以通過配置參數(shù) aof-use-rdb-preamble 來啟用混合持久性模式,config get aof-use-rdb-preamble命令進(jìn)行查看。

由于RDB快照數(shù)據(jù)和AOF日志數(shù)據(jù)存儲(chǔ)在同一個(gè)文件中,因此AOF格式文件不再只存儲(chǔ)全部AOF日志,而是第一部分存儲(chǔ)RDB快照,第二部分存儲(chǔ)從RDB快照持久化開始到持久化結(jié)束的增量AOF日志。因此,RDB數(shù)據(jù)通常占大多數(shù),AOF日志只是增量日志的一小部分

在混合持久策略下,當(dāng)重新啟動(dòng)下一個(gè)Redis實(shí)例時(shí),首先加載RDB快照的內(nèi)容,然后重放增量AOF日志。這可以取代以前的RDB完全導(dǎo)入或AOF完全重放。

總結(jié)

本文為Redis持久化系列第二篇,上一篇【Redis】Redis持久化之RDB詳解,本文講解兼具廣度與深度,首先講解什么是RedisAOF、如何開啟AOF持久化,深入其AOF的原理,AOF持久化實(shí)現(xiàn)、AOF數(shù)據(jù)恢復(fù)、AOF三種寫回硬盤策略、AOF重寫機(jī)制,解析RedisAOF要先執(zhí)行命令后寫日志,以及在實(shí)戰(zhàn)過程中AOF和RDB對(duì)比???????,最后擴(kuò)展Redis4.0新特性的混合持久化模式。

http://www.risenshineclean.com/news/57938.html

相關(guān)文章:

  • 網(wǎng)站怎樣制作seo網(wǎng)站優(yōu)化方案摘要
  • 制作網(wǎng)站首頁的步驟永久開源的免費(fèi)建站系統(tǒng)
  • 臺(tái)州做網(wǎng)站的公司有哪些公司電子商務(wù)平臺(tái)建設(shè)
  • 幫朋友做網(wǎng)站 知乎seo概念的理解
  • 怎樣查網(wǎng)站用什么程序做的今天頭條新聞100條
  • 自己的網(wǎng)站在哪里找線上推廣渠道
  • 怎么看網(wǎng)站源碼用什么做的營銷廣告文案
  • 怎么做視頻網(wǎng)站賺錢嗎長春網(wǎng)站提升排名
  • 怎樣做私人網(wǎng)站重慶今天剛剛發(fā)生的重大新聞
  • 自己做的網(wǎng)站怎么連接計(jì)算機(jī)網(wǎng)絡(luò)推廣策劃案
  • 替人做賭彩網(wǎng)站被判刑外鏈推廣軟件
  • php網(wǎng)站用到的知識(shí)紹興百度seo
  • 百度首頁網(wǎng)站的設(shè)計(jì)詞語搜索排行
  • 網(wǎng)站建設(shè)說課獲獎(jiǎng)視頻seo優(yōu)化排名百度教程
  • 鹽城市濱??h建設(shè)局網(wǎng)站seo搜索引擎優(yōu)化名詞解釋
  • 如何做外貿(mào)網(wǎng)站自動(dòng)seo優(yōu)化
  • 外貿(mào)網(wǎng)站開發(fā)定制廣東廣州網(wǎng)點(diǎn)快速網(wǎng)站建設(shè)
  • 怎么做網(wǎng)站美工宣傳推廣渠道有哪些
  • 山西企業(yè)網(wǎng)站建設(shè)網(wǎng)站注冊(cè)地址
  • 設(shè)計(jì)門戶網(wǎng)站seo網(wǎng)站診斷流程
  • 柯橋建設(shè)局網(wǎng)站制作一個(gè)簡單的網(wǎng)站
  • 網(wǎng)站開發(fā)的報(bào)告自己怎么做網(wǎng)站網(wǎng)頁
  • 做banner的在線網(wǎng)站最常見企業(yè)網(wǎng)站公司有哪些
  • 做淘寶客網(wǎng)站能接廣告嗎關(guān)鍵詞seo是什么
  • wordpress 宕機(jī)原因南山網(wǎng)站seo
  • 深圳龍崗區(qū)寶龍街道正規(guī)seo多少錢
  • 長沙網(wǎng)站開發(fā)培訓(xùn)學(xué)校百度客戶端下載安裝
  • 做網(wǎng)站用html網(wǎng)絡(luò)營銷師有前途嗎
  • 做企業(yè)網(wǎng)站備案都需要什么資料廈門seo優(yōu)化外包公司
  • 網(wǎng)站開發(fā)女生工資網(wǎng)絡(luò)營銷專業(yè)主要學(xué)什么