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

Redis持久化AOF的特點(diǎn)有哪些

這篇文章主要介紹了redis持久化AOF的特點(diǎn)有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的文昌網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

Redis 持久化 (AOF)

特點(diǎn):

以日志的形式來(lái)記錄每個(gè)寫操作,將Redis執(zhí)行過(guò)的所有寫指令記錄下來(lái)(讀操作不記錄),只許追加文件但不可以改寫文件,redis啟動(dòng)之初會(huì)讀取該文件重新構(gòu)建數(shù)據(jù),換言之,redis重啟的話根據(jù)日志文件的內(nèi)容將寫指令從前到后執(zhí)行一次已完成數(shù)據(jù)的恢復(fù)工作。

AOF保存的是appendonly.aof文件

配置:

appendonly no    :默認(rèn)關(guān)閉appendonly 模式 yes 開(kāi)啟
appendfilename "appendonly.aof"      :指定日志文件名稱

appendfsync :

      always        每次修改同步持久化  每次發(fā)生數(shù)據(jù)變更會(huì)被立即記錄到磁盤  性能較差但數(shù)據(jù)完整性比較好

      everysec     出廠默認(rèn)推薦,異步操作 ,每秒記錄  如果一秒內(nèi)宕機(jī),有數(shù)據(jù)丟失

      no            從不同步

no-appendfsync-on-rewrite no     :重寫時(shí)是否可以運(yùn)用 Appendfsync,默認(rèn)no即可,保證數(shù)據(jù)安全性

auto-aof-rewrite-percentage 100  :設(shè)置重寫的基準(zhǔn)
auto-aof-rewrite-min-size 64mb   :設(shè)置重寫的最小文件大小
    AOF文件大小是上次rewrite后大小的一倍 且文件大于64M時(shí)觸發(fā)重寫

實(shí)驗(yàn):查看日志文件

1.修改配置文件,開(kāi)啟AOF

appendonly yes

2. 設(shè)置值

127.0.0.1:9736> set k1 v1
OK
127.0.0.1:9736> set k2 v2
OK
127.0.0.1:9736> set k3 v3
OK
127.0.0.1:9736> set k4 v4
OK
127.0.0.1:9736> FLUSHALL
OK
127.0.0.1:9736> shutdown
not connected> exit
[root@VM_0_7_centos bin]#

3.查看aof文件內(nèi)容

[root@VM_0_7_centos bin]# cat appendonly.aof 
*2
$6
SELECT
$1
0
*3
$3
set
$2
k1
$2
v1
*3
$3
set
$2
k2
$2
v2
*3
$3
set
$2
k3
$2
v3
*3
$3
set
$2
k4
$2
v4
*1
$8
FLUSHALL
[root@VM_0_7_centos bin]#

4. 編輯 aof文件內(nèi)容,模擬恢復(fù)文件過(guò)程

刪除 最后的 FLUSHALL ,保存

5. 啟動(dòng)redis,查看數(shù)據(jù)

127.0.0.1:9736> keys *
1) "k2"
2) "k3"
3) "k1"
4) "k4"

6. 編輯aof文件,模擬斷電,aof文件損壞

在最后加入亂碼,

set
$2
k4
$2
v4
123123123
-- INSERT --

7.因?yàn)閟hutdown ,此時(shí)存在dum.rdb文件

8.此時(shí)啟動(dòng)redis服務(wù),出現(xiàn)問(wèn)題

[root@VM_0_7_centos bin]# redis-server /myredis/redis_aof.conf 
18695:C 23 Sep 2020 15:18:43.773 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
18695:C 23 Sep 2020 15:18:43.774 # Redis version=6.0.5, bits=64, commit=00000000, modified=0, pid=18695, just started
18695:C 23 Sep 2020 15:18:43.774 # Configuration loaded
[root@VM_0_7_centos bin]# redis-cli -p 9736
Could not connect to Redis at 127.0.0.1:9736: Connection refused
not connected>

結(jié)論,aof 和rdb共存情況下,優(yōu)先使用aof

9.修復(fù)aof  redis-check-aof --fix  appendonly.aof

[root@VM_0_7_centos bin]# redis-check-aof --fix  appendonly.aof
0x              8b: Expected prefix '*', got: '1'
AOF analyzed: size=150, ok_up_to=139, diff=11
This will shrink the AOF from 150 bytes, with 11 bytes, to 139 bytes
Continue? [y/N]: y
Successfully truncated AOF

10.啟動(dòng)redis 查看修復(fù)結(jié)果

127.0.0.1:9736> keys *
1) "k4"
2) "k2"
3) "k3"
4) "k1"

11.配置文件中說(shuō)明

# AOF and RDB persistence can be enabled at the same time without problems.
# If the AOF is enabled on startup Redis will load the AOF, that is the file
# with the better durability guarantees.

12. Rewite 重寫機(jī)制

作用:AOF采用文件追加方式,文件會(huì)越來(lái)越大,為避免出現(xiàn)此種情況,新增了重寫機(jī)制,當(dāng)AOF文件的大小超過(guò)所設(shè)定的閾值時(shí),Redis就會(huì)啟動(dòng)AOF文件的內(nèi)容壓縮,只保留可以恢復(fù)數(shù)據(jù)的最小指令集??梢允褂妹頱grewriteaof

原理:AOF文件持續(xù)增長(zhǎng)而過(guò)大時(shí),會(huì)fork出一條新進(jìn)程來(lái)將文件重寫(也是先寫臨時(shí)文件最后在rename),遍歷新進(jìn)程的內(nèi)存中數(shù)據(jù),每條記錄有一條的Set語(yǔ)句。重寫aof文件的操作,并沒(méi)有讀取舊的aof文件,而是將整個(gè)內(nèi)存中的數(shù)據(jù)庫(kù)內(nèi)容用命令的方式重寫了一個(gè)新的aof文件,這點(diǎn)和快照有點(diǎn)類似。

觸發(fā)機(jī)制:Redis會(huì)記錄上次重寫時(shí)的AOF大小,默認(rèn)配置是當(dāng)AOF文件大小是上次rewrite后大小的一倍且文件大于64M時(shí)觸發(fā)。

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

13. 優(yōu)勢(shì)

可設(shè)置 每秒同步、每修改同步、不同步

14. 劣勢(shì)

相同數(shù)據(jù)集的數(shù)據(jù)而言aof文件要遠(yuǎn)大于rdb文件,恢復(fù)速度慢于rdb

AOF運(yùn)行效率要慢于rdb,每秒同步策略效率較好,不同步效率和rdb相同。

15.AOF總結(jié)

Redis持久化AOF的特點(diǎn)有哪些

16.Redis持久化總體總結(jié)

1. RDB持久化方式能夠在指定的時(shí)間間隔能對(duì)你的數(shù)據(jù)進(jìn)行快照存儲(chǔ)

2. AOF持久化方式記錄每次對(duì)服務(wù)器寫的操作,當(dāng)服務(wù)器重啟的時(shí)候會(huì)重新執(zhí)行這些命令來(lái)恢復(fù)原始的數(shù)據(jù),AOF命令以redis協(xié)議追加保存每次寫的操作到文件末尾.Redis還能對(duì)AOF文件進(jìn)行后臺(tái)重寫,使得AOF文件的體積不至于過(guò)大

3. 只做緩存:如果你只希望你的數(shù)據(jù)在服務(wù)器運(yùn)行的時(shí)候存在,你也可以不使用任何持久化方式.

4. 同時(shí)開(kāi)啟兩種持久化方式,

在這種情況下,當(dāng)redis重啟的時(shí)候會(huì)優(yōu)先載入AOF文件來(lái)恢復(fù)原始的數(shù)據(jù),因?yàn)樵谕ǔG闆r下AOF文件保存的數(shù)據(jù)集要比RDB文件保存的數(shù)據(jù)集要完整.

RDB的數(shù)據(jù)不實(shí)時(shí),同時(shí)使用兩者時(shí)服務(wù)器重啟也只會(huì)找AOF文件。那要不要只使用AOF呢?作者建議不要,因?yàn)镽DB更適合用于備份數(shù)據(jù)庫(kù)(AOF在不斷變化不好備份),快速重啟,而且不會(huì)有AOF可能潛在的bug,留著作為一個(gè)萬(wàn)一的手段。

17. 性能建議

因?yàn)镽DB文件只用作后備用途,建議只在Slave上持久化RDB文件,而且只要15分鐘備份一次就夠了,只保留save 900 1這條規(guī)則。
如果Enalbe AOF,好處是在最惡劣情況下也只會(huì)丟失不超過(guò)兩秒數(shù)據(jù),啟動(dòng)腳本較簡(jiǎn)單只load自己的AOF文件就可以了。代價(jià)一是帶來(lái)了持續(xù)的IO,二是AOF rewrite的最后將rewrite過(guò)程中產(chǎn)生的新數(shù)據(jù)寫到新文件造成的阻塞幾乎是不可避免的。只要硬盤許可,應(yīng)該盡量減少AOF rewrite的頻率,AOF重寫的基礎(chǔ)大小默認(rèn)值64M太小了,可以設(shè)到5G以上。默認(rèn)超過(guò)原大小100%大小時(shí)重寫可以改到適當(dāng)?shù)臄?shù)值。
如果不Enable AOF ,僅靠Master-Slave Replication 實(shí)現(xiàn)高可用性也可以。能省掉一大筆IO也減少了rewrite時(shí)帶來(lái)的系統(tǒng)波動(dòng)。代價(jià)是如果Master/Slave同時(shí)倒掉,會(huì)丟失十幾分鐘的數(shù)據(jù),啟動(dòng)腳本也要比較兩個(gè)Master/Slave中的RDB文件,載入較新的那個(gè)。新浪微博就選用了這種架構(gòu)

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Redis持久化AOF的特點(diǎn)有哪些”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

網(wǎng)站名稱:Redis持久化AOF的特點(diǎn)有哪些
轉(zhuǎn)載源于:http://jinyejixie.com/article24/ggshje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、建站公司、網(wǎng)站內(nèi)鏈定制開(kāi)發(fā)、網(wǎng)站制作、企業(yè)網(wǎng)站制作

廣告

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

外貿(mào)網(wǎng)站建設(shè)
安达市| 宝应县| 台安县| 麻江县| 平顺县| 体育| 南涧| 皋兰县| 修文县| 新丰县| 江北区| 巴林右旗| 鄄城县| 中西区| 孟州市| 霍林郭勒市| 阳东县| 尚志市| 绵阳市| 鞍山市| 东山县| 彭州市| 达日县| 丹东市| 衡阳县| 南岸区| 习水县| 墨脱县| 临夏市| 三都| 威宁| 武邑县| 井陉县| 临汾市| 伊通| 秀山| 五家渠市| 武乡县| 班戈县| 花垣县| 山西省|