面试突击 005 | Redis 是如何实现高可用的?它的实现方式有哪些?「视频版」
這是我的第?35?篇原創文章
作者 |?老王(javacn666)
這部視頻的錄制、剪輯、做 PPT、寫文稿大約花費了 5 個小時的時間,希望這種形式能被更多的人喜歡,希望這篇文章會給你帶來更多的價值。
1 面試題
Redis 是如何實現高可用的?它的實現方式有哪些?
2 涉及問題
什么是高可用?
Redis 中高可用的實現方式有哪些?
各種實現方式的優缺點有哪些?
3 視頻
視頻內容如下:
4 答案
高可用是指通過設計減少程序不能提供服務的時間叫做高可用。
Redis 實現高可用的方式有四種:
持久化
主從同步(主從復制)
Redis Sentinel
Redis Cluster
1)持久化
持久化有三種方式:
RDB(Redis DataBase)全量復制
AOF(Append Only File)增量復制
混合持久化(支持版本 Redis 4.0+)
持久化讓 Redis 的數據不再丟失,當某個節點奔潰時,可以很快的重新啟動或重新搭建一個 Redis 服務器端,加載持久化文件即可恢復 Redis 的正常運行,為 Redis 奔潰恢復節省了寶貴的時間。
更多介紹詳見視頻部分。
2)主從同步
提供的功能是從單機 Redis 變成多機 Redis。
提供兩種模式:主從模式和從從模式。
主從模式,如下圖所示:
從從模式,如下圖所示:
當主節點出現問題,我們可以迅速把從節點切換成主節點,以快速恢復 Redis 的正常使用。
3)Redis Sentinel
主從模式有一個問題就是每次主節點出現問題時,我們需要手動所有從節點,非常的不方便,使用我們需要有一個監控的程序 Sentinel 幫我們盯著這些主從服務器,一旦主節點有問題就立馬擁護一個從節點作為新的主節點,這就是 Sentinel 最有價值的功能,如下圖所示:
4)Redis Cluster
集群功能是 Redis 3.0 提供的,它除了擁有主從和 Sentinel 的所有功能之外,還支持多個主從節點,Sentinel 監視的一組服務中只能有一個主節點,而 Cluster 可以擁有任意多個,并且 Cluster 提供了分片功能,可以把數據均衡的存儲在各個主節點上,大大的提供了 Redis 的并發能力,如下圖所示:
5 小結
持久化提供了數據存儲功能,讓數據不再丟失,提高了 Redis 恢復的可能性;主從同步模式把單機 Redis 變成了多機 Redis,并且可以實現讀寫分離,從而降低了主節點讀取的壓力,當主節點宕機之后,也能手動快速的恢復 Redis 服務;Sentinel 把主從手動恢復的功能變成了自動的,實現了自動容災;而 Cluster 除了支持其他功能之外,還提供了串連多個主從服務器的能力以及分片的能力,大大的提供了 Redis 的并發能力。
更多內容,請看視頻部分。
【END】
近期熱文
面試突擊 004 | 如何排查 Redis 中的慢查詢?
面試突擊 003 | Redis 如何實現查詢附近的人?
面試突擊 002 | Redis 是如何處理已過期元素的?
面試突擊 001 | Redis 如何從海量數據中查詢出某一個 Key?
Java面試詳解(2020版):500+ 面試題和核心知識點詳解
面試珍藏:最常見的200多道Java面試題
關注下方二維碼,訂閱更多精彩內容
朕已閱?
總結
以上是生活随笔為你收集整理的面试突击 005 | Redis 是如何实现高可用的?它的实现方式有哪些?「视频版」的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 附录:更多列表操作命令
- 下一篇: Spring Boot 最佳实践(五)S