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

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

網(wǎng)站開(kāi)發(fā)要服務(wù)器嗎東莞網(wǎng)站推廣企業(yè)

網(wǎng)站開(kāi)發(fā)要服務(wù)器嗎,東莞網(wǎng)站推廣企業(yè),煙臺(tái)做網(wǎng)站的企業(yè),美食網(wǎng)站建設(shè)策劃書(shū)范文文章目錄 為什么需要AOF?概念持久化查詢和設(shè)置1. 查詢AOF啟動(dòng)狀態(tài)2. 開(kāi)啟AOF持久化2.1 命令行啟動(dòng)AOF2.2 配置文件啟動(dòng) AOF 3. 觸發(fā)持久化3.1 自動(dòng)觸發(fā)3.3 手動(dòng)觸發(fā) 4. AOF 文件重寫(xiě)4.1 什么是AOF重寫(xiě)?4.2 AOF 重寫(xiě)實(shí)現(xiàn)4.3 AOF 重寫(xiě)流程 5. 配置說(shuō)明6. 數(shù)據(jù)恢復(fù)6.1…

文章目錄

    • 為什么需要AOF?
    • 概念
    • 持久化查詢和設(shè)置
      • 1. 查詢AOF啟動(dòng)狀態(tài)
      • 2. 開(kāi)啟AOF持久化
        • 2.1 命令行啟動(dòng)AOF
        • 2.2 配置文件啟動(dòng) AOF
      • 3. 觸發(fā)持久化
        • 3.1 自動(dòng)觸發(fā)
        • 3.3 手動(dòng)觸發(fā)
      • 4. AOF 文件重寫(xiě)
        • 4.1 什么是AOF重寫(xiě)?
        • 4.2 AOF 重寫(xiě)實(shí)現(xiàn)
        • 4.3 AOF 重寫(xiě)流程
      • 5. 配置說(shuō)明
      • 6. 數(shù)據(jù)恢復(fù)
        • 6.1 正常數(shù)據(jù)恢復(fù)
        • 6.2 簡(jiǎn)單異常數(shù)據(jù)恢復(fù)
        • 6.3 復(fù)雜異常數(shù)據(jù)恢復(fù)
      • 7. 優(yōu)缺點(diǎn)
        • 優(yōu)點(diǎn)
        • 缺點(diǎn)

為什么需要AOF?

使用 RDB 持久化有一個(gè)風(fēng)險(xiǎn),它可能會(huì)造成最新數(shù)據(jù)丟失的風(fēng)險(xiǎn)。因?yàn)?RDB 的持久化有一定的時(shí)間間隔,在這個(gè)時(shí)間段內(nèi)如果 Redis 服務(wù)意外終止的話,就會(huì)造成最新的數(shù)據(jù)全部丟失。

可能會(huì)操作 Redis 服務(wù)意外終止的條件:

  • 安裝 Redis 的機(jī)器停止運(yùn)行,藍(lán)屏或者系統(tǒng)崩潰;
  • 安裝 Redis 的機(jī)器出現(xiàn)電源故障,例如突然斷電;
  • 使用 kill -9 Redis_PID 等。

那么如何解決以上的這些問(wèn)題呢?Redis 為我們提供了另一種持久化的方案——AOF。

概念

AOF(Append Only File)中文是附加到文件,顧名思義 AOF 可以把 Redis 每個(gè)鍵值對(duì)操作都記錄到文件(appendonly.aof)中。

持久化查詢和設(shè)置

1. 查詢AOF啟動(dòng)狀態(tài)

使用 config get appendonly命令,如下圖所示:
在這里插入圖片描述
其中,第一行為 AOF 文件的名稱,而最后一行表示 AOF 啟動(dòng)的狀態(tài),yes 表示已啟動(dòng),no 表示未啟動(dòng)。

2. 開(kāi)啟AOF持久化

Redis 默認(rèn)是關(guān)閉 AOF 持久化的,想要開(kāi)啟 AOF 持久化,有以下兩種方式:

  • 通過(guò)命令行的方式;
  • 通過(guò)修改配置文件的方式(redis.conf)。

下面分別來(lái)看以上兩種方式的實(shí)現(xiàn)。

2.1 命令行啟動(dòng)AOF

命令行啟動(dòng) AOF,使用 config set appendonly yes 命令,如下圖所示:
在這里插入圖片描述
命令行啟動(dòng) AOF 的優(yōu)缺點(diǎn):命令行啟動(dòng)優(yōu)點(diǎn)是無(wú)需重啟 Redis 服務(wù),缺點(diǎn)是如果 Redis 服務(wù)重啟,則之前使用命令行設(shè)置的配置就會(huì)失效。

2.2 配置文件啟動(dòng) AOF

Redis 的配置文件在它的根路徑下的 redis.conf 文件中,獲取 Redis 的根目錄可以使用命令 config get dir 獲取,如下圖所示:

![在這里插入圖片描述](https://img-blog.csdnimg.cn/direct/7de3d3dc7bee430ea213231bd7da1f71.png

在這里插入圖片描述
只需要在配置文件中設(shè)置 appendonly yes 即可,默認(rèn) appendonly no 表示關(guān)閉 AOF 持久化。 配置文件啟動(dòng) AOF 的優(yōu)缺點(diǎn):修改配置文件的缺點(diǎn)是每次修改配置文件都要重啟 Redis 服務(wù)才能生效,優(yōu)點(diǎn)是無(wú)論重啟多少次 Redis 服務(wù),配置文件中設(shè)置的配置信息都不會(huì)失效。

3. 觸發(fā)持久化

AOF 持久化開(kāi)啟之后,只要滿足一定條件,就會(huì)觸發(fā) AOF 持久化。AOF 的觸發(fā)條件分為兩種:自動(dòng)觸發(fā)和手動(dòng)觸發(fā)。

3.1 自動(dòng)觸發(fā)

有兩種情況可以自動(dòng)觸發(fā) AOF 持久化,分為是:滿足 AOF 設(shè)置的策略觸發(fā)和滿足 AOF 重寫(xiě)觸發(fā)。其中,AOF 重寫(xiě)觸發(fā)會(huì)在本文的后半部分詳細(xì)介紹,這里重點(diǎn)來(lái)說(shuō) AOF 持久化策略都有哪些。 AOF 持久化策略,分為以下三種:

  • always:每條 Redis 操作命令都會(huì)寫(xiě)入磁盤,最多丟失一條數(shù)據(jù);
  • everysec:每秒鐘寫(xiě)入一次磁盤,最多丟失一秒的數(shù)據(jù);
  • no:不設(shè)置寫(xiě)入磁盤的規(guī)則,根據(jù)當(dāng)前操作系統(tǒng)來(lái)決定何時(shí)寫(xiě)入磁盤,Linux 默認(rèn) 30s 寫(xiě)入一次數(shù)據(jù)至磁盤。

這三種配置可以在 Redis 的配置文件(redis.conf)中設(shè)置,如下代碼所示:

# 開(kāi)啟每秒寫(xiě)入一次的持久化策略
appendfsync everysec

小貼士:因?yàn)槊看螌?xiě)入磁盤都會(huì)對(duì) Redis 的性能造成一定的影響,所以要根據(jù)用戶的實(shí)際情況設(shè)置相應(yīng)的策略,一般設(shè)置每秒寫(xiě)入一次磁盤的頻率就可以滿足大部分的使用場(chǎng)景了。

觸發(fā)自動(dòng)持久化的兩種情況,如下圖所示:

在這里插入圖片描述

3.3 手動(dòng)觸發(fā)

在客戶端執(zhí)行 bgrewriteaof 命令就可以手動(dòng)觸發(fā) AOF 持久化,如下圖所示:
在這里插入圖片描述

可以看出執(zhí)行完 bgrewriteaof 命令之后,AOF 持久化就會(huì)被觸發(fā)。

4. AOF 文件重寫(xiě)

AOF 是通過(guò)記錄 Redis 的執(zhí)行命令來(lái)持久化(保存)數(shù)據(jù)的,所以隨著時(shí)間的流逝 AOF 文件會(huì)越來(lái)越多,這樣不僅增加了服務(wù)器的存儲(chǔ)壓力,也會(huì)造成 Redis 重啟速度變慢,為了解決這個(gè)問(wèn)題 Redis 提供了 AOF 重寫(xiě)的功能。

4.1 什么是AOF重寫(xiě)?

AOF 重寫(xiě)指的是它會(huì)直接讀取 Redis 服務(wù)器當(dāng)前的狀態(tài),并壓縮保存為 AOF 文件。例如,我們?cè)黾恿艘粋€(gè)計(jì)數(shù)器,并對(duì)它做了 99 次修改,如果不做 AOF 重寫(xiě)的話,那么持久化文件中就會(huì)有 100 條記錄執(zhí)行命令的信息,而 AOF 重寫(xiě)之后,之后記錄一條此計(jì)數(shù)器最終的結(jié)果信息,這樣就去除了所有的無(wú)效信息。

4.2 AOF 重寫(xiě)實(shí)現(xiàn)

觸發(fā) AOF 文件重寫(xiě),要滿足兩個(gè)條件,這兩個(gè)條件也是配置在 Redis 配置文件中的,它們分別:

  • auto-aof-rewrite-min-size:允許 AOF 重寫(xiě)的最小文件容量,默認(rèn)是 64mb 。
  • auto-aof-rewrite-percentage:AOF 文件重寫(xiě)的大小比例,默認(rèn)值是 100,表示 100%,也就是只有當(dāng)前 AOF 文件,比最后一次(上次)的 AOF 文件大一倍時(shí),才會(huì)啟動(dòng) AOF 文件重寫(xiě)。

查詢 auto-aof-rewrite-min-size 和 auto-aof-rewrite-percentage 的值,可使用 config get xxx 命令,如下圖所示:

在這里插入圖片描述

小貼士:只有同時(shí)滿足 auto-aof-rewrite-min-size 和 auto-aof-rewrite-percentage 設(shè)置的條件,才會(huì)觸發(fā) AOF 文件重寫(xiě)。

注意:使用 bgrewriteaof 命令,可以自動(dòng)觸發(fā) AOF 文件重寫(xiě)。

4.3 AOF 重寫(xiě)流程

AOF 文件重寫(xiě)是生成一個(gè)全新的文件,并把當(dāng)前數(shù)據(jù)的最少操作命令保存到新文件上,當(dāng)把所有的數(shù)據(jù)都保存至新文件之后,Redis 會(huì)交換兩個(gè)文件,并把最新的持久化操作命令追加到新文件上。

5. 配置說(shuō)明

合理的設(shè)置 AOF 的配置,可以保障 Redis 高效且穩(wěn)定的運(yùn)行,以下是 AOF 的全部配置信息和說(shuō)明。

AOF 的配置參數(shù)在 Redis 的配置文件中,也就是 Redis 根路徑下的 redis.conf 文件中,配置參數(shù)和說(shuō)明如下:

# 是否開(kāi)啟 AOF,yes 為開(kāi)啟,默認(rèn)是關(guān)閉
appendonly no# AOF 默認(rèn)文件名
appendfilename "appendonly.aof"# AOF 持久化策略配置
# appendfsync always
appendfsync everysec
# appendfsync no# AOF 文件重寫(xiě)的大小比例,默認(rèn)值是 100,表示 100%,也就是只有當(dāng)前 AOF 文件,比最后一次的 AOF 文件大一倍時(shí),才會(huì)啟動(dòng) AOF 文件重寫(xiě)。
auto-aof-rewrite-percentage 100# 允許 AOF 重寫(xiě)的最小文件容量
auto-aof-rewrite-min-size 64mb# 是否開(kāi)啟啟動(dòng)時(shí)加載 AOF 文件效驗(yàn),默認(rèn)值是 yes,表示盡可能的加載 AOF 文件,忽略錯(cuò)誤部分信息,并啟動(dòng) Redis 服務(wù)。
# 如果值為 no,則表示,停止啟動(dòng) Redis,用戶必須手動(dòng)修復(fù) AOF 文件才能正常啟動(dòng) Redis 服務(wù)。
aof-load-truncated yes

其中比較重要的是 appendfsync 參數(shù),用它來(lái)設(shè)置 AOF 的持久化策略,可以選擇按時(shí)間間隔或者操作次數(shù)來(lái)存儲(chǔ) AOF 文件,這個(gè)參數(shù)的三個(gè)值在文章開(kāi)頭有說(shuō)明,這里就不再?gòu)?fù)述了。

6. 數(shù)據(jù)恢復(fù)

6.1 正常數(shù)據(jù)恢復(fù)

正常情況下,只要開(kāi)啟了 AOF 持久化,并且提供了正常的 appendonly.aof 文件,在 Redis 啟動(dòng)時(shí)就會(huì)自定加載 AOF 文件并啟動(dòng),執(zhí)行如下圖所示:

在這里插入圖片描述
其中 DB loaded from append only file...... 表示 Redis 服務(wù)器在啟動(dòng)時(shí),先去加載了 AOF 持久化文件。

小貼士:默認(rèn)情況下 appendonly.aof 文件保存在 Redis 的根目錄下。

持久化文件加載規(guī)則

  • 如果只開(kāi)啟了 AOF 持久化,Redis 啟動(dòng)時(shí)只會(huì)加載 AOF 文件(appendonly.aof),進(jìn)行數(shù)據(jù)恢復(fù);
  • 如果只開(kāi)啟了 RDB 持久化,Redis 啟動(dòng)時(shí)只會(huì)加載 RDB 文件(dump.rdb),進(jìn)行數(shù)據(jù)恢復(fù);
  • 如果同時(shí)開(kāi)啟了 RDB 和 AOF 持久化,Redis 啟動(dòng)時(shí)只會(huì)加載 AOF 文件(appendonly.aof),進(jìn)行數(shù)據(jù)恢復(fù)。

在 AOF 開(kāi)啟的情況下,即使 AOF 文件不存在,只有 RDB 文件,也不會(huì)加載 RDB 文件。 AOF 和 RDB 的加載流程如下圖所示:

在這里插入圖片描述

6.2 簡(jiǎn)單異常數(shù)據(jù)恢復(fù)

在 AOF 寫(xiě)入文件時(shí)如果服務(wù)器崩潰,或者是 AOF 存儲(chǔ)已滿的情況下,AOF 的最后一條命令可能被截?cái)?#xff0c;這就是異常的 AOF 文件。

在 AOF 文件異常的情況下,如果為修改 Redis 的配置文件,也就是使用 aof-load-truncated 等于 yes 的配置,Redis 在啟動(dòng)時(shí)會(huì)忽略最后一條命令,并順利啟動(dòng) Redis,執(zhí)行結(jié)果如下:

* Reading RDB preamble from AOF file...
* Reading the remaining AOF tail...
# !!! Warning: short read while loading the AOF file !!!
# !!! Truncating the AOF at offset 439 !!!
# AOF loaded anyway because aof-load-truncated is enabled
6.3 復(fù)雜異常數(shù)據(jù)恢復(fù)

AOF 文件可能出現(xiàn)更糟糕的情況,當(dāng) AOF 文件不僅被截?cái)?#xff0c;而且中間的命令也被破壞,這個(gè)時(shí)候再啟動(dòng) Redis 會(huì)提示錯(cuò)誤信息并中止運(yùn)行,錯(cuò)誤信息如下:

* Reading the remaining AOF tail...
# Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix <filename>

出現(xiàn)此類問(wèn)題的解決方案如下:

  1. 首先使用 AOF 修復(fù)工具,檢測(cè)出現(xiàn)的問(wèn)題,在命令行中輸入 redis-check-aof 命令,它會(huì)跳轉(zhuǎn)到出現(xiàn)問(wèn)題的命令行,這個(gè)時(shí)候可以嘗試手動(dòng)修復(fù)此文件;
  2. 如果無(wú)法手動(dòng)修復(fù),我們可以使用 redis-check-aof --fix 自動(dòng)修復(fù) AOF 異常文件,不過(guò)執(zhí)行此命令,可能會(huì)導(dǎo)致異常部分至文件末尾的數(shù)據(jù)全部被丟棄。

7. 優(yōu)缺點(diǎn)

優(yōu)點(diǎn)
  • AOF 持久化保存的數(shù)據(jù)更加完整,AOF 提供了三種保存策略:每次操作保存、每秒鐘保存一次、跟隨系統(tǒng)的持久化策略保存,其中每秒保存一次,從數(shù)據(jù)的安全性和性能兩方面考慮是一個(gè)不錯(cuò)的選擇,也是 AOF 默認(rèn)的策略,即使發(fā)生了意外情況,最多只會(huì)丟失 1s 鐘的數(shù)據(jù);
  • AOF 采用的是命令追加的寫(xiě)入方式,所以不會(huì)出現(xiàn)文件損壞的問(wèn)題,即使由于某些意外原因,導(dǎo)致了最后操作的持久化數(shù)據(jù)寫(xiě)入了一半,也可以通過(guò) redis-check-aof 工具輕松的修復(fù);
  • AOF 持久化文件,非常容易理解和解析,它是把所有 Redis 鍵值操作命令,以文件的方式存入了磁盤。即使不小心使用 flushall 命令刪除了所有鍵值信息,只要使用 AOF 文件,刪除最后的 flushall 命令,重啟 Redis 即可恢復(fù)之前誤刪的數(shù)據(jù)。
缺點(diǎn)
  • 對(duì)于相同的數(shù)據(jù)集來(lái)說(shuō),AOF 文件要大于 RDB 文件;
  • 在 Redis 負(fù)載比較高的情況下,RDB 比 AOF 性能更好;
  • RDB 使用快照的形式來(lái)持久化整個(gè) Redis 數(shù)據(jù),而 AOF 只是將每次執(zhí)行的命令追加到 AOF 文件中,因此從理論上說(shuō),RDB 比 AOF 更健壯。
http://www.risenshineclean.com/news/55111.html

相關(guān)文章:

  • 有哪些網(wǎng)站可以做外貿(mào)網(wǎng)站推廣的途徑和方法
  • h5 做的網(wǎng)站 價(jià)格葫島百度seo
  • 做gif動(dòng)圖的網(wǎng)站犯法嗎seo文章優(yōu)化技巧
  • 個(gè)人可以做視頻網(wǎng)站嗎企業(yè)查詢寶
  • 大慶開(kāi)發(fā)網(wǎng)站公司每日新聞
  • 怎么注冊(cè)網(wǎng)站賬號(hào)seo查詢
  • 哈爾濱網(wǎng)站建設(shè)信息網(wǎng)站如何做優(yōu)化排名
  • 現(xiàn)成的手機(jī)網(wǎng)站做APP最近實(shí)時(shí)熱點(diǎn)事件
  • 培訓(xùn)網(wǎng)站建設(shè)永州網(wǎng)站seo
  • 網(wǎng)站建設(shè)入門教程對(duì)網(wǎng)絡(luò)營(yíng)銷的認(rèn)識(shí)800字
  • 網(wǎng)頁(yè)工具東莞優(yōu)化排名公司
  • 農(nóng)業(yè)網(wǎng)站建設(shè)方案 ppt搜索推廣平臺(tái)
  • 有什么網(wǎng)站是做平面設(shè)計(jì)的百度搜索的優(yōu)勢(shì)
  • 真人性做爰video網(wǎng)站公司網(wǎng)站建站要多少錢
  • 深圳做積分商城網(wǎng)站建設(shè)怎么制作鏈接網(wǎng)頁(yè)
  • 深圳分銷網(wǎng)站設(shè)計(jì)電話企業(yè)網(wǎng)站建設(shè)
  • 公司建一個(gè)網(wǎng)站嗎搜什么關(guān)鍵詞能搜到好片
  • 廣州知名網(wǎng)站建設(shè)哪家公司好seo文案范例
  • 產(chǎn)品網(wǎng)站建設(shè)軟文推廣營(yíng)銷平臺(tái)
  • 家里電腦做網(wǎng)站服務(wù)器seo推廣怎么樣
  • 網(wǎng)站開(kāi)發(fā)什么意思徐州seo公司
  • 河南新鄉(xiāng)市建設(shè)銀行網(wǎng)站系統(tǒng)優(yōu)化軟件排行榜
  • 競(jìng)價(jià)網(wǎng)站做seo教育培訓(xùn)機(jī)構(gòu)官網(wǎng)
  • 武漢網(wǎng)絡(luò)推廣有哪些公司鄂爾多斯seo
  • 湛江找人做網(wǎng)站排名球隊(duì)排名榜實(shí)時(shí)排名
  • 網(wǎng)站建設(shè)中 html營(yíng)銷課程
  • 做網(wǎng)站如何設(shè)計(jì)數(shù)據(jù)庫(kù)個(gè)人網(wǎng)頁(yè)設(shè)計(jì)作品模板
  • wordpress .htaccess 規(guī)則seo代碼優(yōu)化工具
  • 門戶網(wǎng)站功能清單萬(wàn)網(wǎng)域名查詢注冊(cè)商
  • 做的很好的黑白網(wǎng)站如何在百度上做產(chǎn)品推廣