Redis是一種高階key-value資料庫。它跟memcached類似,不過資料可以持久化,而且支援的資料型態很豐富。有字串,鍊錶,集 合和有序集合。支援在伺服器端計算集合的並,交和補集(difference)等,也支援多種排序功能。所以Redis也可以被看成是一個資料結構伺服器。
Redis的所有資料都是保存在記憶體中,然後不定期的透過非同步方式保存到磁碟上(這稱為「半持久化模式」);也可以把每一次資料變更都寫入到一個append only file(aof)裡面(這稱為「全持久化模式」)。 (建議學習:Redis影片教學)
由於Redis的資料都存放在記憶體中,如果沒有設定持久化,redis重啟後資料就全遺失了,所以需要開啟redis的持久化功能,將資料儲存到磁碟上,當redis重新啟動後,可以從磁碟中復原資料。
redis提供兩種方式進行持久化,一種是RDB持久化(原理是將Reids在記憶體中的資料庫記錄定時dump到磁碟上的RDB持久化),另外一種是AOF(append only file)持久化(原理是將Reids的操作日誌以追加的方式寫入檔案)。那麼這兩種持久化方式有什麼差別呢,改如何選擇呢?
區別
RDB持久化是指在指定的時間間隔內將記憶體中的資料集快照寫入磁碟,實際操作過程是fork一個子進程,先將資料集寫入臨時文件,寫入成功後,再替換之前的文件,用二進位壓縮儲存。
AOF持久化以日誌的形式記錄伺服器所處理的每一個寫入、刪除操作,查詢操作不會記錄,以文字的方式記錄,可以開啟檔案看到詳細的操作記錄。
更多Redis相關技術文章,請造訪Redis資料庫使用入門教學欄位學習!
以上是redis持久化的方式以及區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!