java進階篇--Redis 是如何實現高可用的?

高可用是通過設計,減少系統不能提供服務的時間,是分佈式系統的基礎也是保障系統可靠性的重要手段。而 Redis 作爲一款普及率最高的內存型中間件,它的高可用技術也非常的成熟。

我們本課時的面試題是,Redis 是如何保證系統高可用的?它的實現方式有哪些?

回答:

Redis 高可用的手段主要有以下四種:

    數據持久化
    主從數據同步(主從複製)
    Redis 哨兵模式(Sentinel)
    Redis 集羣(Cluster)

其中數據持久化保證了系統在發生宕機或者重啓之後數據不會丟失,增加了系統的可靠性和減少了系統不可用的時間(省去了手動恢復數據的過程);而主從數據同步可以將數據存儲至多臺服務器,這樣當遇到一臺服務器宕機之後,可以很快地切換至另一臺服務器以繼續提供服務;哨兵模式用於發生故障之後自動切換服務器;而 Redis 集羣提供了多主多從的 Redis 分佈式集羣環境,用於提供性能更好的 Redis 服務,並且它自身擁有故障自動切換的能力。

面試常考點分析

高可用的問題屬於 Redis 中比較大的面試題了,因爲很多知識點都和這個面試題有關,同時也屬於比較難的面試題了。因爲涉及了分佈式集羣,而分佈式集羣屬於 Redis 中比較難懂的一個知識點。和此問題相關的面試題還有以下幾個:

    數據持久化有幾種方式?
    Redis 主從同步有幾種模式?
    什麼是 Redis 哨兵模式?它解決了什麼問題?
    Redis 集羣的優勢是什麼?

1.數據持久化

持久化功能是 Redis 和 Memcached 的主要區別之一,因爲只有 Redis 提供了此功能。

在 Redis 4.0 之前數據持久化方式有兩種:AOF 方式和 RDB 方式。

    RDB(

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章