更新時間:2022-05-31 08:44:11 來源:動力節(jié)點(diǎn) 瀏覽1525次
在Redis教程中,大家也應(yīng)該有所了解,Redis是一個開源的內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲,用于構(gòu)建緩存和鍵值 NoSQL 數(shù)據(jù)庫。Redis Cluster 是 Redis 的一個特殊版本,有助于提高 Redis 數(shù)據(jù)庫的可擴(kuò)展性和可用性。但是 Redis Cluster 到底是什么,Redis Cluster 和 Redis 有什么不同呢?
Redis Cluster是 Redis 的一種分布式實現(xiàn),它可以跨多個 Redis 節(jié)點(diǎn)自動對數(shù)據(jù)進(jìn)行分片(即分區(qū))。
沒有人可以預(yù)測他們的 Redis 數(shù)據(jù)庫將消耗的確切資源量。這意味著能夠充分?jǐn)U展 Redis 數(shù)據(jù)庫在高需求時期至關(guān)重要。可擴(kuò)展性與可用性密切相關(guān),可用性是衡量用戶實際訪問數(shù)據(jù)庫能力的指標(biāo)。
Redis 集群有助于提高 Redis 數(shù)據(jù)庫的可擴(kuò)展性、可用性和容錯性,超出 Redis 的基本版本。Redis 集群的特點(diǎn)包括:
可擴(kuò)展性: Redis 集群可以橫向擴(kuò)展至 1000 個節(jié)點(diǎn)的最大限制。
可用性: Redis 集群要繼續(xù)運(yùn)行有兩個條件:大多數(shù)主節(jié)點(diǎn)必須可達(dá),任何不可達(dá)的主節(jié)點(diǎn)必須有備用從節(jié)點(diǎn)。這是一項慷慨的政策,有助于提高 Redis 數(shù)據(jù)庫的可用性。
寫入安全: Redis 集群嘗試以寫入安全的方式運(yùn)行:它將嘗試保留來自連接到集群中大多數(shù)主節(jié)點(diǎn)的任何客戶端的寫入。
Redis Cluster 通過對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分片來工作。分片是一種數(shù)據(jù)庫分區(qū)方案,其中數(shù)據(jù)庫中的不同行(或者,在 Redis 的情況下,鍵值對)分布在多個節(jié)點(diǎn)上,因此每個節(jié)點(diǎn)都包含一部分?jǐn)?shù)據(jù)。這意味著如果一個節(jié)點(diǎn)出現(xiàn)故障,只有一部分?jǐn)?shù)據(jù)將不可用,這將允許許多數(shù)據(jù)庫請求正常進(jìn)行。
Redis Cluster 中另一個重要的概念是主/從架構(gòu)。在這種模式中,一個節(jié)點(diǎn)被指定為“主節(jié)點(diǎn)”,它控制和協(xié)調(diào)集群中的其余節(jié)點(diǎn)(稱為“從節(jié)點(diǎn)”或“副本”)。
Redis Cluster可以使用主從復(fù)制,這樣集群中的每個master都有一個備份slave節(jié)點(diǎn)。如果其中一個主節(jié)點(diǎn)發(fā)生故障,則可以將相應(yīng)的從節(jié)點(diǎn)指定為新的主節(jié)點(diǎn),而對整個集群的破壞很小。(但是,如果主節(jié)點(diǎn)和從節(jié)點(diǎn)都發(fā)生故障,則整個集群將無法繼續(xù)運(yùn)行)。
請注意,盡管 Redis Cluster 嘗試提供高級別的寫入安全性,但它不能保證強(qiáng)一致性。這很大程度上是因為 Redis Cluster 使用異步復(fù)制。如果客戶端向主節(jié)點(diǎn)寫入某些內(nèi)容,然后在將寫入復(fù)制到其從節(jié)點(diǎn)之前崩潰,那么新的主節(jié)點(diǎn)(提升的從節(jié)點(diǎn))將不知道此寫入。相反,Redis Cluster 試圖在高性能和一致性之間取得平衡。
通過上述介紹,相信大家對Redis集群已經(jīng)有所了解,大家如果想了解更多相關(guān)知識,可以關(guān)注一下動力節(jié)點(diǎn)的Java在線學(xué)習(xí),里面的課程內(nèi)容細(xì)致全面,通俗易懂,很適合小白學(xué)習(xí),希望對大家能夠有所幫助。
初級 202925
初級 203221
初級 202629
初級 203743