09 Redis持久化 AOF方式

2022-04-19 18:48:13 字數 1288 閱讀 8241

【aof簡述】

redis每次接受到一條改變資料的命令時,它會把該命令寫到乙個aof檔案中(只記錄寫操作,不記錄讀操作),當redis啟動時,它通過執行aof檔案中的所有命令來恢復資料。

【aof】

當使用redis儲存非臨時資料時,一般需要開啟aof持久化來降低程序終止導致的資料丟失。

aof可以將redis執行的每一條寫命令追加到硬碟檔案中,這一過程顯然會降低redis的效能,但是大部分情況下這個影響是可以接收的,另外使用較快的硬碟可以提高aof的效能。

【配置aof】

【開啟aof】

開啟aof持久化後每執行一條寫命令,redis就會將該命令寫入硬碟中的aof檔案。

【總結】

【總結——aof優點】

1.比rdb可靠。你可以制定不同的fsync策略:不進行fsync、每秒fsync一次和每次查詢進行fsync。

預設是每秒fsync一次。這意味著你最多丟失一秒鐘的資料。

2.aof日誌檔案是乙個純追加的檔案。就算是遇到突然停電的情況,也不會出現日誌的定位或者損壞問題。

甚至如果因為某些原因(例如磁碟滿了)命令只寫了一半到日誌檔案裡,我們也可以用redis-check-aof這個工具很簡單的進行修復。

3.當aof檔案太大時,redis會自動在後台進行重寫。重寫很安全,

因為重寫是在乙個新的檔案上進行,同時redis會繼續往舊的檔案追加資料。新檔案上會寫入能重建當前資料集的最小操作命令的集合。

當新檔案重寫完,redis會把新舊檔案進行切換,然後開始把資料寫到新檔案上。

4.aof把操作命令以簡單易懂的格式一條接一條的儲存在檔案裡,很容易匯出來用於恢復資料。

例如我們不小心用flushall命令把所有資料刷掉了,只要檔案沒有被重寫,我們可以把服務停掉,把最後那條命令刪掉,

然後重啟服務,這樣就能把被刷掉的資料恢復回來。

【總結——aof缺點】

1.在相同的資料集下,aof檔案的大小一般會比rdb檔案大。

2.在某些fsync策略下,aof的速度會比rdb慢。通常fsync設定為每秒一次就能獲得比較高的效能,

而在禁止fsync的情況下速度可以達到rdb的水平。

3.在過去曾經發現一些很罕見的bug導致使用aof重建的資料跟原資料不一致的問題。

Redis 持久化 AOF方式

當使用redis儲存非臨時資料時,一般需要開啟aof持久化來降低程序中止導致的資料丟失。aof可以將redis執行的每一條命令追加到硬碟檔案中,這一過程會降低redis的效能,但是大部分情況下,這個影響是可以接受的,另外使用較快的硬碟可以aof的效能。開啟aof aof實現 aof檔案的內容是red...

redis的aof方式持久化

redis提供兩種持久化方式,rdb和aof 與rdb不同,aof可以完整的記錄整個資料庫,而不像rdb只是資料庫某一時刻的快照 那麼aof模式為什麼可以完整的記錄整個資料庫呢?原理 在aof模式下,redis會把執行過的每一條更新命令記錄下來,儲存到aof檔案中 當redis需要恢復資料庫資料時,...

redis持久化 AOF持久化

1.aof持久化原理 aof持久化會將被執行的寫命令寫到aof檔案的末尾。在恢復的時候,redis只要從頭到尾重新執行一次aof檔案包含的所有寫命令 2.配置選項 固態硬碟禁用always選項,在某些情況頻繁讀寫會大大降低固態硬碟的壽命 4.aof檔案的重寫和壓縮 aof檔案裡面記錄了所有的命令而不...