1. 程式人生 > >Redis的持久化機制包括RBD和AOF兩種,對於這兩種持久化方式各有優勢

Redis的持久化機制包括RBD和AOF兩種,對於這兩種持久化方式各有優勢

plain 同步數據 pen toc 默認 ocl 好的 dfs 操作系統

RDB機制的策略

RDB持久化是指在指定的時間間隔內將內存中的數據和操作通過快照的方式保存到redis bin目錄下的一個默認名為 dump.rdb的文件,可以通過配置設置自動的快照持久化的方式,我們可以配置redis在n秒內進行快照的時間,如果超過這個時間節點,將會自動執行快照操作。雖然這種方式方便快捷,但是無法保證數據的絕對安全可靠,如果服務器在非備份時間跨度內發生了故障,無法做到對當前狀態的實時保存,導致數據丟失。而且每次保存 RDB文件時, Redis都需要 fork()出一個子進程,由子進程來執行具體的持久化工作,對資源消耗較大。

AOF機制的策略

redis 的 AOF 持久化是在每次接受到的命令通過 write函數追加到文件中(默認是 appendonly.aof),但是由於操作系統在寫入文件時使用了緩存來提高寫入效率,還是可能會出現因服務器突然故障而導致的數據丟失,故我們可以通過配置文件告訴redis我們同步數據的時間間隔(默認間隔是每秒同步一次)

[html] view plain copy
  1. appendonly yes //啟用aof持久化方式
  2. # appendfsync always //每次收到寫命令就立即強制寫入磁盤,最慢的,但是保證完全的持久化,不推薦使用
  3. appendfsync everysec //每秒鐘強制寫入磁盤一次,在性能和持久化方面做了很好的折中,推薦
  4. # appendfsync no //完全依賴os,性能最好,持久化沒保證

Redis的持久化機制包括RBD和AOF兩種,對於這兩種持久化方式各有優勢