09_Redis持久化——AOF方式
生活随笔
收集整理的這篇文章主要介紹了
09_Redis持久化——AOF方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【AOF簡述】
AOF(Append-only)
Redis每次接受到一條改變數據的命令時,它會把該命令寫到一個AOF文件中(只記錄寫操作,不記錄讀操作),當Redis啟動時,它通過執行AOF文件中的所有命令來恢復數據。
【AOF】
當使用Redis存儲非臨時數據時,一般需要打開AOF持久化來降低進程終止導致的數據丟失。
AOF可以將Redis執行的每一條寫命令追加到硬盤文件中,這一過程顯然會降低Redis的性能,但是大部分情況下這個影響是可以接收的,另外使用較快的硬盤可以提高AOF的性能。
?【配置AOF】
?
【開啟AOF】
默認情況下Redis是咩有開啟AOF(append only file)方式的持久化,可以通過appendonly參數啟動:
appendonly yes
開啟AOF持久化后每執行一條寫命令,Redis就會將該命令寫入硬盤中的AOF文件。
AOF文件的保存位置和RDB文件的位置相同,都是通過dir參數設置的,默認的文件名是appendonly.aof,可以通過appendfilename參數修改。
?
【總結】
?
【總結——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重建的數據跟原數據不一致的問題。
?
轉載于:https://www.cnblogs.com/HigginCui/p/8672389.html
總結
以上是生活随笔為你收集整理的09_Redis持久化——AOF方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈数据分析中的“暗物质”
- 下一篇: 配置 yum 源的两种方法