1.aof持久化配置
aof持久化,預設是關閉的,預設開啟的持久化配置是rdb
在生產環境中,一般來說aof是要開啟的,除非對一兩分鐘
沒有影響。
開啟aof機制之後,redis沒收到一次寫命令,就會寫入到
日誌檔案中,當然現寫入到os cache 中,然後每隔一定的時間
在fsync一下,把命令寫入到磁碟 中。
如果aof和rdb都開啟了,redis 重啟的時候,會優先通過
aof進行資料恢復的,因為aof資料比較完整。
aof有三種fsync策略:
always:每次寫入一條資料,立即將這個資料fsync寫到磁碟上去(效能很差)
everysec:每秒將os cache記憶體中的資料fsync到磁碟(生產環境使用這個策略,qps能達到上萬)
no : 僅僅將資料寫入到os cache就撒手不管了,os 會根據自己的策略把資料寫入到磁碟,不可控
aof的rewrite,redis中的資料是有限的,很多資料會自動過期,也可能會被使用者刪掉,可能會被redis用快取清楚的演算法清楚掉。
aof會自動每隔一定的時間,做rewrite操作。
rewrite過程:
(1)redis fork乙個子程序
(2)子程序基於當前記憶體中的資料,構建日誌,開始往乙個新的臨時的aof檔案中寫入日誌
(3)redis主程序,接收到client新的寫操作之後,在記憶體中寫入日誌,同時新的日誌也繼續寫入舊的aof檔案
(4)子程序寫完新的日誌檔案之後,redis主程序將記憶體中的新日誌再次追加到新的aof檔案中
(5)用新的日誌檔案替換掉舊的日誌檔案
redis持久化 AOF持久化
1.aof持久化原理 aof持久化會將被執行的寫命令寫到aof檔案的末尾。在恢復的時候,redis只要從頭到尾重新執行一次aof檔案包含的所有寫命令 2.配置選項 固態硬碟禁用always選項,在某些情況頻繁讀寫會大大降低固態硬碟的壽命 4.aof檔案的重寫和壓縮 aof檔案裡面記錄了所有的命令而不...
Redis的持久化 AOF
redis的aof持久化策略是將傳送到redis服務端的每一條命令都記錄下來,並且儲存到硬碟中的aof檔案中,類似打日誌檔案,來一條命令就記錄一條。aof設定 aof測試 當客戶端向伺服器傳送一些redis命令時,redis會將所執行的命令記錄到aof檔案中,如下所示 當redis伺服器重啟後,會將...
Redis的持久化 AOF
redis的aof持久化策略是將傳送到redis服務端的每一條命令都記錄下來,並且儲存到硬碟中的aof檔案中,類似打日誌檔案,來一條命令就記錄一條。aof設定 aof測試 當客戶端向伺服器傳送一些redis命令時,redis會將所執行的命令記錄到aof檔案中,如下所示 當redis伺服器重啟後,會將...