redis持久化策略

lsq_008發表於2016-04-21
1. 快照
##持久化策略
save 900 1
save 300 10
save 60 10000

2. Append-only檔案模式
##類似於redo日誌或binlog
appendonly yes
appendfilename "appendonly.aof"

選項:
  1、appendfsync no
  當設定appendfsync為no的時候,Redis不會主動呼叫fsync去將AOF日誌內容同步到磁碟,所以這一切就完全依賴於作業系統的除錯了。對大多數Linux作業系統,是每30秒進行一次fsync,將緩衝區中的資料寫到磁碟上。

  2、appendfsync everysec
當設定appendfsync為everysec的時候,Redis會預設每隔一秒進行一次fsync呼叫,將緩衝區中的資料寫到磁碟。但是當這一 次的fsync呼叫時長超過1秒時。Redis會採取延遲fsync的策略,再等一秒鐘。也就是在兩秒後再進行fsync,這一次的fsync就不管會執行多長時間都會進行。這時候由於在fsync時檔案描述符會被阻塞,所以當前的寫操作就會阻塞。

所以,結論就是:在絕大多數情況下,Redis會每隔一秒進行一次fsync。在最壞的情況下,兩秒鐘會進行一次fsync操作。

這一操作在大多數資料庫系統中被稱為group commit,就是組合多次寫操作的資料,一次性將日誌寫到磁碟。

  3、appednfsync always
當設定appendfsync為always時,每一次寫操作都會呼叫一次fsync,這時資料是最安全的,當然,由於每次都會執行fsync,所以其效能也會受到影響

   建議採用 appendfsync everysec(預設方式)
  快照模式可以和AOF模式同時開啟,互補影響

命令:BGREWRITEAOF, 我們應該經常呼叫這個命令來來重寫

資料恢復:

如果只配置AOF,重啟時載入AOF檔案恢復資料;
如果同時 配置了RBD和AOF,啟動是隻載入AOF檔案恢復資料;
如果只配置RBD,啟動時將載入dump檔案恢復資料。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10972173/viewspace-2085269/,如需轉載,請註明出處,否則將追究法律責任。

相關文章