中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis持久化中的RDB使用方法

發布時間:2021-09-14 15:27:33 來源:億速云 閱讀:145 作者:柒染 欄目:編程語言

Redis持久化中的RDB使用方法,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

Redis持久化概述

Redis持久化分成三種方式:RDB(Redis DataBase)、AOF(Append Only File)和AOF+RDB混合持久化

關于Redis持久化,有這么一些說法:

1:RDB是在不同的時間點,將Redis某一時刻的數據生成快照并存儲到磁盤上

2:AOF是只允許追加不允許改寫的文件,是將Redis執行過的所有寫指令記錄下來,在下次Redis重新啟動時,只要把這些寫指令從前到后再重復執行一遍,就可以實現數據恢復了

3:混合方式是先使用RDB進行快照存儲,然后使用AOF持久化記錄所有的寫操作

4:RDB和AOF兩種方式可以同時使用,在這種情況下,如果Redis重啟的話,則會優先采用AOF方式來進行數據恢復,這是因為AOF方式的數據恢復完整度更高

5:可以關閉RDB和AOF,這樣的話,Redis將變成一個純內存數據庫,就像Memcache一樣

6:通過配置redis.conf中的appendonly為yes就可以打開AOF功能

7:通過 aof-use-rdb-preamble 配置項可以打開混合方式

RDB方式概述

RDB方式,Redis會單獨創建(fork)一個子進程來進行持久化,會先將數據寫入到一個臨時文件中,待持久化過程都結束了,再用這個臨時文件替換上次持久化好的文件。整個過程中,主進程是不進行任何IO操作的,這就確保了極高的性能

如果需要進行大規模數據的恢復,且對于數據恢復的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺點是最后一次持久化后的數據可能丟失。

RDB的配置

1:save * :保存快照的頻率,第一個表示多長時間,單位是秒,第二個*表示至少執行寫操作的次數;在一定時間內至少執行一定數量的寫操作時,就自動保存快照;可設置多個條件。

(1)如果想禁用RDB持久化的策略,只要不設置任何save指令,或者給save傳入一個空字符串參數也可以

(2)如果用戶開啟了RDB快照功能,那么在Redis持久化數據到磁盤時如果出現失敗,默認情況下,Redis會停止接受所有的寫請求。這樣做的好處在于可以讓用戶很明確的知道內存中的數據和磁盤上的數據已經存在不一致了。如果下一次RDB持久化成功,redis會自動恢復接受寫請求。

2:dbfilename:數據快照文件名(只是文件名,不包括目錄),默認dump.rdb

3:dir:數據快照的保存目錄(這個是目錄),默認是當前路徑

4:stop-writes-on-bgsave-error:如果配置成no,表示你不在乎數據不一致或者有其他的手段發現和控制這種不一致,那么在快照寫入失敗時,也能確保redis繼續接受新的寫請求

5:rdbcompression:對于存儲到磁盤中的快照,可以設置是否進行壓縮存儲。如果是的話,redis會采用LZF算法進行壓縮。如果你不想消耗CPU來進行壓縮的話,可以設置為關閉此功能

6:rdbchecksum:在存儲快照后,還可以讓redis使用CRC64算法來進行數據校驗,但是這樣做會增加大約10%的性能消耗,如果希望獲取到最大的性能提升,可以關閉此功能

7:rdb-del-sync-files:在沒有持久性的情況下刪除復制中使用的RDB文件啟用。默認情況下,此選項是禁用的。

RDB優點

	適合冷備份、高性能、恢復數據快

RDB的問題

1:fork一個進程時,內存的數據也被復制了,即內存會是原來的兩倍

2:每次快照持久化都是將內存數據完整寫入到磁盤一次,并不是增量的只同步臟數據。如果數據量大的話,而且寫操作比較多,必然會引起大量的磁盤io操作,可能會嚴重影響性能。

3:由于快照方式是在一定間隔時間做一次的,所以如果redis意外down掉的話,就會丟失最后一次快照后的所有修改。

觸發快照的情況

1:根據配置規則進行自動快照
2:用戶執行save或bgsave命令
3:執行flushall命令
4:執行復制replication時

save命令

執行Save命令時,Redis會阻塞所有客戶端的請求,然后同步進行快照操作。

bgsave命令

執行bgsave命令時,Redis會在后臺異步進行快照操作,快照同時還可以響應客戶端請求。可以通過lastsave命令獲取最后一次成功執行快照的時間。

flushall命令

這個命令會導致Redis清除內存中的所有數據,如果定義了自動快照的條件,那么無論是否滿足條件,都會進行一次快照操作;如果沒有定義自動快照的條件,那么不會進行快照

關于Redis持久化中的RDB使用方法問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郎溪县| 南昌县| 仁寿县| 宜兰县| 安新县| 南投市| 延长县| 江门市| 焦作市| 建湖县| 萨迦县| 武穴市| 明溪县| 南宫市| 西昌市| 汽车| 南岸区| 汝城县| 榆社县| 颍上县| 巫溪县| 缙云县| 临颍县| 普安县| 马山县| 台前县| 洞口县| 龙岩市| 淮南市| 沁水县| 平陆县| 中西区| 恩平市| 扬州市| 桃园县| 汕尾市| 天等县| 炎陵县| 洞口县| 宜兴市| 苗栗县|