您好,登錄后才能下訂單哦!
這期內容當中的小編將會給大家帶來有關配置redis持久化的方式,以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
由于Redis的數據都存放在內存中,如果沒有配置持久化,redis重啟后數據就全丟失了,于是需要開啟redis的持久化功能,將數據保存到磁 盤上,當redis重啟后,可以從磁盤中恢復數據。
redis提供兩種方式進行持久化,一種是RDB持久化(原理是將Reids在內存中的數據庫記錄定時 dump到磁盤上的RDB持久化),另外一種是AOF(append only file)持久化(原理是將Reids的操作日志以追加的方式寫入文件)。
RDB:RDB持久化是把當前進程數據生成快照保存到硬盤的過程,觸發RDB持久化過程分為手動觸發和自動觸發。
觸發機制
手動觸發分別對應save和bgsave命令
save命令:阻塞當前Redis服務器,知道RDB過程完成為止,對于內存比較大的實例會造成長時間阻塞,線上不建議使用。
DB saved on disk
bgseve命令:Redis進程執行fork操作創建子進程,RDB持久化過程有子進程負責,完成后自動結束。阻塞只發生在fork階段,一般時間很短。
* Background saving started by pid 3151 * DB saved on disk * RDB: 0 MB of memory used by copy-on-write * Background saving terminated with success
自動觸發
以下場景下會觸發
1)使用save相關配置,如“save m n”。表示m秒內數據集存在n次修改時,自動觸發bgsave。
2)如果從節點執行全量復制操作,主節點自動執行bgsave生成RDB文件并發送給從節點。
3)執行debug reload命令重新加載Redis時,也會自動觸發save操作。
4)默認情況下執行shutdown命令時,如果沒有開啟AOF持久化功能則自動執行bgsave。
AOF:以獨立日志的方式記錄每次寫命令,重啟時在重新執行AOF文件中的命令達到恢復數據的目的。主要作用:解決了數據持久化的實時性。
使用AOF
開啟AOF功能需要設置配置:appendonly yes,默認不開啟。文件名通過appendfilename配置設置,默認appendonly.aof。
1)所有的寫入命令會追加到aof_buf(緩沖區)中。
2)AOF緩沖區根據對應的策略向硬盤做同步操作。
3)隨著AOF文件越來越大,需要定期對AOF文件進行重寫,達到壓縮的目的。
4)當Redis服務器重啟時,可以加載AOF文件進行數據恢復。
上述就是小編為大家分享的配置redis持久化的方式了,如果您也有類似的疑惑,不妨礙參照上述分析進行理解。如果想了解更多相關內容,請關注億速云行業資訊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。