首頁 >資料庫 >Redis >redis預設持久化是否開啟

redis預設持久化是否開啟

anonymity
anonymity原創
2019-06-04 16:16:0613580瀏覽

眾所周知,redis是記憶體資料庫,它把資料儲存在記憶體中,這樣在加快讀取速度的同時也對資料安全性產生了新的問題,即當redis所在伺服器發生宕機後,redis資料庫裡的所有資料將會全部遺失。

為了解決這個問題,redis提供了持久化功能。通俗的講就是將記憶體中的資料寫入硬碟。

redis預設持久化是否開啟

Redis 提供了多種不同層級的持久化方式:

1、RDB 持久化可以在指定的時間間隔內產生資料集的時間點快照(point-in-time snapshot)。

2、AOF 持久化記錄伺服器執行的所有寫入操作命令,並在伺服器啟動時,透過重新執行這些命令來還原資料集。 AOF 檔案中的指令全部以 Redis 協定的格式來儲存,新指令會被追加到檔案的結尾。 Redis 也可以在背景對 AOF 檔案進行重寫(rewrite),使得 AOF 檔案的體積不會超出保存資料集狀態所需的實際大小。

3、Redis 還可以同時使用 AOF 持久化和 RDB 持久化。在這種情況下, 當 Redis 重新啟動時, 它會優先使用 AOF 檔案來還原資料集, 因為 AOF 檔案保存的資料集通常比 RDB 檔案所保存的資料集更完整。

4、關閉持久化功能,。讓資料只存在記憶體裡面,重啟就沒了。

Redis的RDB持久化(RDB預設是啟動的)

#1.Snapshotting:

缺省情況下,Redis會將資料集的快照dump到dump.rdb檔。此外,我們也可以透過設定檔來修改Redis伺服器dump快照的頻率,在開啟redis.conf檔之後,我們搜尋save,可以看到下面的設定資訊:

save 900 1 #在900秒(15分鐘)之後,如果至少有1個key發生變化,則dump記憶體快照。

save 300 10 #在300秒(5分鐘)之後,如果至少有10個key發生變化,則dump記憶體快照。

save 60 10000 #在60秒(1分鐘)之後,如果至少有10000個key發生變化,則dump記憶體快照。

2. Dump快照的機制:

1). Redis先fork子程序。

2).子程序將快照資料寫入到臨時RDB檔案。

3). 當子程序完成資料寫入操作後,再用暫存檔案取代舊的檔案。

以上是redis預設持久化是否開啟的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn