redis是乙個非常好的快取中介軟體,就是將我們的資料放到快取中。我們知道快取的讀取是非常快的。但是誰都避免不了伺服器的意外宕機。一旦宕機,快取中的資料就會丟失。redis除了有主備方式來解決宕機之後的資料丟失之外,還有持久化機制。把資料寫在硬碟上,機器宕機之後啟動時會先去硬碟上讀取資料寫進記憶體。
redis的持久化機制分為兩種,即rdb和aof,本篇主要講rdb,下篇講aof
rdb執行流程:
redis會fork乙個子程序,然後子程序將資料寫入乙個臨時的rdb檔案,當子程序完成對臨時的rdb檔案的寫入,將完成的rdb檔案來覆蓋 舊的rdb檔案。只有新的rdb檔案生成後才會將舊的檔案替換成新的,也就是說任何時候rdb檔案都是完整的
rdb觸發時機
1.配置檔案
2.使用命令
3.使用flushall命令:這個命令也會產生dump.rdb檔案,但裡面是空的,沒有意義
4.伺服器關閉: 如果執行shutdown命令讓redis正常退出,那麼此前redis就會執行一次持久化儲存。但是意外宕機不會持久化 比如斷電
5.主從複製的時候(具體請看主從複製文章)
因為要複製給從節點最新資訊,
所以也會觸發
缺點:由於他是每隔幾秒鐘觸發一次,當這次觸發完,下次還沒有觸發時,也可以存入記憶體資料,但是存入資料之後,突然宕機,那麼存的資料就不能被持久化了。就會出現最後一次持久化之後的資料丟失問題。
redis持久化方案之RDB
注意 redis啟動後會讀取rdb快照檔案,將資料從硬碟載入到記憶體。根據資料量大小與結構和伺服器效能不同,這個時間也不同。通常將記錄一千萬個字串型別鍵 大小為1gb的快照檔案載入到記憶體中需要花費20 30秒鐘。redis使用fork函式複製乙份當前程序的副本 子程序 父程序繼續接收並處理客戶端發...
Redis 持久化方式 RDB
redis持久化資料的兩種方式之一,另外一種是aof。redis會定期儲存資料快照至乙個rbd檔案中,並在啟動時自動載入rdb檔案,恢復之前儲存的資料。自動觸發 可以在redis的配置檔案中進行設定,以達到滿足條件自動觸發rdb備份。其他可能 主從複製的時候 因為要複製給從節點最新資訊,所以也會觸發...
Redis 持久化方式 RDB
針對redis的話題估計有些讀者已經開始反感了,昨天還是有一些讀者困惑,這就具體講述下redis持久化方式 rdb的實現方式 手動觸發 自動觸發 rdb 的持久化機制,例如以下場景 儲存 rdb 檔案儲存在 dir 配置指定的目錄下,檔名通過 dbfilename 配置指定。可以通過執行config...