目錄
一、是什么AOF?
二、AOF如何開(kāi)啟 以及觸發(fā)策略有哪些
三、AOF文件重寫(xiě)
四、AOF與RDB對(duì)比
一、是什么AOF?
就是通過(guò)每次記錄寫(xiě)操作,最終通過(guò)來(lái)依次這些命令來(lái)達(dá)到恢復(fù)數(shù)據(jù)的目的
二、AOF如何開(kāi)啟 以及觸發(fā)策略有哪些
save ""可以關(guān)閉掉RDB
appendonly yes 開(kāi)啟AOF
觸發(fā)策略有:
1. 每一次的執(zhí)行命令都會(huì)被記錄
appendfsync always
2.先將每次執(zhí)行的命令先放到緩存中,然后 每隔一秒記錄一次
appendfsync everysec
3.?先將每次執(zhí)行的命令先放到緩存中,然后操作系統(tǒng)來(lái)決定何時(shí)寫(xiě)入aof文件中
appendfsync no
這三種? always每次都記錄 因此比較耗費(fèi)CPU資源 效率不是很高? 但是能最好的保證數(shù)據(jù)的完整性
而 no的方式效率最高,但有丟失數(shù)據(jù)的風(fēng)險(xiǎn)
因此Redis默認(rèn)選擇折中的 everysec的方式
三、AOF文件重寫(xiě)
因?yàn)閍of文件中記錄的是每一次的執(zhí)行命令,是追加的方式,會(huì)導(dǎo)致文件越來(lái)越大,并且其中對(duì)某一個(gè)key對(duì)多次修改都會(huì)記錄,而實(shí)際上只有最后的一次修改才起作用,前面的都是無(wú)效記錄。
如何解決這個(gè)問(wèn)題呢?redis提供了AOF文件重寫(xiě)功能
執(zhí)行的命令是:bgrewriteaof
例子:
set name zs
set age 20
set name ls
其實(shí)最終會(huì)壓縮成
mset name ls age 20 就是壓縮成最終還能正確恢復(fù)數(shù)據(jù)的最小指令集
也可以設(shè)置自動(dòng)重寫(xiě)策略,達(dá)到某個(gè)閾值觸發(fā):
# AOF文件比上次文件 增長(zhǎng)超過(guò)多少百分比則觸發(fā)重寫(xiě)
auto-aof-rewrite-percentage 100
# AOF文件體積最小多大以上才觸發(fā)重寫(xiě)
auto-aof-rewrite-min-size 64mb
四、AOF與RDB對(duì)比
1. 持久化方式上面
rdb是記錄快照? aof是記錄每一次的執(zhí)行命令
2. 宕機(jī)恢復(fù)速度上面
rdb宕機(jī)恢復(fù)速度更快? aof稍慢一點(diǎn)
3. 恢復(fù)相同的數(shù)據(jù)集所需要的文件大小
rdb文件比較小? ?aof文件很大
4. 數(shù)據(jù)完整性方面
rdb在這方面不如aof
5. 系統(tǒng)資源占用方面
rdb比較占用cpu和內(nèi)存資源? ?aof在重寫(xiě)的時(shí)候比較占CPU? 另外就是很占用磁盤(pán)資源
6. 數(shù)據(jù)恢復(fù)優(yōu)先級(jí)
就是當(dāng)aof和rdb都存在的時(shí)候,優(yōu)先選擇哪種方式
aof的優(yōu)先級(jí)更高,因?yàn)樗芨玫谋WC數(shù)據(jù)的完整性
綜上它兩的使用場(chǎng)景是不同的
rdb適合用來(lái)做備份? ?適合大數(shù)據(jù)的備份 因?yàn)榛謴?fù)速度快 并且文件小
然后也對(duì)數(shù)據(jù)完整性要求不是那么的高? 可以忍受短暫的數(shù)據(jù)丟失文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-744081.html
而aof方式則適合需要強(qiáng)完整性的時(shí)候文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-744081.html
到了這里,關(guān)于Redis系統(tǒng)學(xué)習(xí)(高級(jí)篇)-Redis持久化-AOF方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!