您好,登錄后才能下訂單哦!
這篇文章主要介紹“Redis高可用和持久化概述”,在日常操作中,相信很多人在Redis高可用和持久化概述問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Redis高可用和持久化概述”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
持久化:
持久化是最簡單的高可用方法(有時甚至不被歸為高可用手段),主要作用是數據備份,即將數據存儲在硬盤,保證數據不會因進程退出而丟失。
復制:
復制是高可用Redis的基礎,哨兵和集群都是在復制的基礎上實現高可用的。復制主要實現了數據的多機備份,以及對于讀操作的負載均衡和簡單的故障恢復。
缺陷:故障恢復無法自動化,寫操作無法負載均衡,存儲能力受到單機的限制。
哨兵:
在復制的基礎上,哨兵實現了自動化的故障恢復。
缺陷:寫操作無法負載均衡;存儲能力收到單機限制。
集群:
通過集群,Redis解決了操作無法負載均衡,以及存儲能力收到單機限制的問題,實現了較為完善的高可用解決方案。
持久化的功能:Redis是內存數據庫,數據都是存儲在內存中。
Redis的持久化分為RDB和AOF持久化:
前者是將數據保存到硬盤。
后者是將每次執行的寫命令保存到硬盤。
RDB持久化
RDB持久化是將當前進程中的數據生成快照保存到硬盤中(因此也叫做快照持久化),保存的文件后綴是RDB;
當Redis重新啟動時,可以讀取快照文件恢復數據。
手動觸發:
save命令和bgsave命令都可以生成RDB文件。
save命令會阻塞Redis服務進程,直到RDB文件創建完畢為止,在Redis服務器阻塞期間,服務器不能執行任何命令請求。
bgsave命令會創建一個子進程,由子進程來創建RDB文件,父進程(即Redis主進程)繼續處理請求。bgsave命令執行過程中,只有fork(ork了進程,子進程中的redis連接沒法用了,要重連)子進程會阻塞服務器,而對于save命令,整個過程都會阻塞服務器。
在自動觸發RDB持久化時,Redis也會使用bgsave而不是save來進行持久化;下面介紹自動觸發RDB持久化條件。
自動觸發:
最常見的情況是在配置文件中通過savemn,指定m秒內發生了n次變化時,會觸發bgsave。
到此,關于“Redis高可用和持久化概述”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。