這是個人第 35 篇原創文章
做者 | 老王(javacn666)
這部視頻的錄製、剪輯、作 PPT、寫文稿大約花費了 5 個小時的時間,但願這種形式能被更多的人喜歡,但願這篇文章會給你帶來更多的價值。
1 面試題java
Redis 是如何實現高可用的?它的實現方式有哪些?
2 涉及問題面試
視頻內容以下:服務器
4 答案併發
高可用是指經過設計減小程序不能提供服務的時間叫作高可用。
Redis 實現高可用的方式有四種:ide
持久化有三種方式:
RDB(Redis DataBase)全量複製
AOF(Append Only File)增量複製
混合持久化(支持版本 Redis 4.0+)
持久化讓 Redis 的數據再也不丟失,當某個節點奔潰時,能夠很快的從新啓動或從新搭建一個 Redis 服務器端,加載持久化文件便可恢復 Redis 的正常運行,爲 Redis 奔潰恢復節省了寶貴的時間。
更多介紹詳見視頻部分。
2)主從同步設計
提供的功能是從單機 Redis 變成多機 Redis。
提供兩種模式:主從模式和從從模式。
主從模式,以下圖所示:視頻
從從模式,以下圖所示:
當主節點出現問題,咱們能夠迅速把從節點切換成主節點,以快速恢復 Redis 的正常使用。
3)Redis Sentinelblog
主從模式有一個問題就是每次主節點出現問題時,咱們須要手動全部從節點,很是的不方便,使用咱們須要有一個監控的程序 Sentinel 幫咱們盯着這些主從服務器,一旦主節點有問題就立馬擁護一個從節點做爲新的主節點,這就是 Sentinel 最有價值的功能,以下圖所示:
4)Redis Cluster同步
集羣功能是 Redis 3.0 提供的,它除了擁有主從和 Sentinel 的全部功能以外,還支持多個主從節點,Sentinel 監視的一組服務中只能有一個主節點,而 Cluster 能夠擁有任意多個,而且 Cluster 提供了分片功能,能夠把數據均衡的存儲在各個主節點上,大大的提供了 Redis 的併發能力,以下圖所示:
5 小結it
持久化提供了數據存儲功能,讓數據再也不丟失,提升了 Redis 恢復的可能性;主從同步模式把單機 Redis 變成了多機 Redis,而且能夠實現讀寫分離,從而下降了主節點讀取的壓力,當主節點宕機以後,也能手動快速的恢復 Redis 服務;Sentinel 把主從手動恢復的功能變成了自動的,實現了自動容災;而 Cluster 除了支持其餘功能以外,還提供了串連多個主從服務器的能力以及分片的能力,大大的提供了 Redis 的併發能力。
更多內容,請看視頻部分。
【END】
近期熱文