Redis是一種高階key-value資料庫。它跟memcached類似,不過資料可以持久化,而且支援的資料型態很豐富。有字串,鍊錶,集 合和有序集合。支援在伺服器端計算集合的並,交和補集(difference)等,也支援多種排序功能。所以Redis也可以被看成是一個資料結構服務 器。
Redis的所有資料都是保存在記憶體中,然後不定期的透過非同步方式保存到磁碟上(這稱為「半持久化模式」);也可以把每一次資料變化都寫入到一個append only file(aof)裡面(這稱為「全持久化模式」)。
由於Redis的資料都存放在記憶體中,如果沒有配置持久化,redis重啟後資料就全遺失了,於是需要開啟redis的持久化功能,將資料保存到磁碟上,當redis重啟後,可以從磁碟中恢復資料。 redis提供兩種方式進行持久化,一種是RDB持久化(原理是將Reids在記憶體中的資料庫記錄定時dump到磁碟上的RDB持久化),另外一種是AOF(append only file)持久化(原理是將Reids的操作日誌以追加的方式寫入檔案)。
Redis跟memcache不同的是,儲存在Redis中的資料是持久化的,斷電或重新啟動後,資料不會遺失。因為Redis的儲存分為記憶體儲存、磁碟儲存和log檔案三部分,重啟後,Redis可以從磁碟重新將資料載入到記憶體中,這些可以透過設定檔對其進行配置,正因為這樣,Redis才能實現持久化。
以上是redis怎麼做持久化的詳細內容。更多資訊請關注PHP中文網其他相關文章!