欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Redis Cluster原理及配置詳解

 更新時間:2022年11月13日 16:27:40   作者:碼哥字節(jié)  
這篇文章主要為大家介紹了Redis Cluster原理及配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

Redis Cluster 原理說的頭頭是道,這些配置不懂就是紙上談兵

Redis Cluster 集群相關(guān)配置,使用集群方式的你必須重視和知曉。別嘴上原理說的頭頭是道,而集群有哪些配置?如何配置讓集群快到飛起,實現(xiàn)真正的高可用卻一頭霧水,通過下面這些配置詳解也讓你對集群原理更加深刻。

cluster-enabled

普通的 Redis 實例是不能成為集群的一員,想要將該節(jié)點加入 Redis Cluster,需要設(shè)置 cluster-enabled yes。

cluster-config-file

cluster-config-file nodes-6379.conf 指定集群中的每個節(jié)點文件。

集群中的每個節(jié)點都有一個配置文件,這個文件并不是讓程序員編輯的,是我自己創(chuàng)建和更新的,每個節(jié)點都要使用不同的配置文件,一定要確保同一個集群中的不同節(jié)點使用的是不同的文件。

cluster-node-timeout

設(shè)置集群節(jié)點不可用的最大超時時間,節(jié)點失效檢測。集群中當一個節(jié)點向另一個節(jié)點發(fā)送PING命令,但是目標節(jié)點未在給定的時限內(nèi)返回PING命令的回復(fù)時,那么發(fā)送命令的節(jié)點會將目標節(jié)點標記為PFAIL(possible failuer,可能已失效);

如果master 節(jié)點超過這個時間還是無響應(yīng),則用它的從節(jié)點將啟動故障遷移,升級成主節(jié)點。

注意,任何一個節(jié)點在這個時間之內(nèi)如果還是沒有連上大部分的主節(jié)點,則此節(jié)點將停止接收任何請求。

默認配置是 cluster-node-timeout 15000,單位是毫秒數(shù)。

cluster-port

該端口是集群總線監(jiān)聽 TCP 連接的端口,默認配置為 cluster-port 0,我就會把端口綁定為客戶端命令端口 + 10000(客戶端端口默認 6379,所以綁定為 16379 作為集群總線端口)。每個 Redis Cluster 節(jié)點都需要開放兩個端口:

  • 一個用于服務(wù)于客戶端的 TCP 端口,比如 6379.
  • 另一個稱為集群總線端口,節(jié)點使用集群總線進行故障監(jiān)測、配置更新、故障轉(zhuǎn)移等。客戶端不要與集群總線端口通信,另外請確保在防火墻打開這兩個端口,否則 Redis 集群接地那將無法通信。

cluster-replica-validity-factor

該配置用于決定當 Redis Cluster 集群中,一個 master 宕機后,如何選擇一個 slave 節(jié)點完成故障轉(zhuǎn)移自動恢復(fù)(failover)。如果設(shè)置為 0 ,則不管 slave 與 master 之間斷開多久,都認為自己有資格成為 master。

下面提供了兩種方式來評估 slave 的數(shù)據(jù)是否太舊。

  • 如果有多個 slave 可以 failover,他們之間會通過交換信息選出擁有擁有最大復(fù)制 offset 的 slave 節(jié)點。
  • 每個 slave 節(jié)點計算上次與 master 節(jié)點交互的時間,這個交互包含最后一次 ping 操作、master 節(jié)點傳輸過來的寫指令、上次可 master 斷開的時間等。如果上次交互的時間過去很久,那么這個節(jié)點就不會發(fā)起 failover。

針對第二點,交互時間可以通過配置定義,如果 slave 與 master 上次交互的時間大于 (node-timeout * cluster-replica-validity-factor) + repl-ping-replica-period,該 slave 就不會發(fā)生 failover。

例如,`node-timeout = 30 秒,cluster-replica-validity-factor=10repl-ping-slave-period=10秒, 表示slave節(jié)點與master節(jié)點上次交互時間已經(jīng)過去了310秒,那么slave節(jié)點就不會做failover。

調(diào)大 cluster-replica-validity-factor 則允許存儲過舊數(shù)據(jù)的 slave 節(jié)點提升為 master,調(diào)小的話可能會導(dǎo)致沒有 slave 節(jié)點可以升為 master 節(jié)點。

考慮高可用,建議大家設(shè)置為 cluster-replica-validity-factor 0。

cluster-migration-barrier

沒有 slave 節(jié)點的 master 節(jié)點稱為孤兒 master節(jié)點,這個配置就是用于防止出現(xiàn)裸奔的 master。

當某個 master 的 slave 節(jié)點宕機后,集群會從其他 master 中選出一個富余的 slave 節(jié)點遷移過來,確保每個 master 節(jié)點至少有一個 slave 節(jié)點,防止當孤立 master 節(jié)點宕機時,沒有slave節(jié)點可以升為 master 導(dǎo)致集群不可用。

默認配置為 cluster-migration-barrier 1,是一個遷移臨界值。

含義是:遷移后 master 節(jié)點至少還有 1 個 slave 節(jié)點才能做遷移操作。比如 master A 節(jié)點有2個以上 slave 節(jié)點 ,當集群出現(xiàn)孤兒 master B 節(jié)點時,A 節(jié)點富余的 slave 節(jié)點可以遷移到 master B 節(jié)點上。

生產(chǎn)環(huán)境建議維持默認值,最大可能保證高可用,設(shè)置為非常大的值或者配置 cluster-allow-replica-migration no 禁用自動遷移功能。

cluster-allow-replica-migration 默認配置為 yes,表示允許自動遷移。

cluster-require-full-coverage

默認配置是 yes,表示為當 redis cluster 發(fā)現(xiàn)至少還有一個 哈希槽沒有被分配時禁止查詢操作。

這就會導(dǎo)致集群部分宕機,整個集群就不可用了,當所有哈希槽都有分配,集群會自動變?yōu)榭捎脿顟B(tài)。

如果你希望 cluster 的子集依然可用,配置成 cluster-require-full-coverage yes。

cluster-replica-no-failover

默認配置為 no,當配置成 yes,在master 宕機時,slave 不會做故障轉(zhuǎn)移升為 master。

這個配置在多數(shù)據(jù)中心的情況下會很有用,你可能希望某個數(shù)據(jù)中心永遠不要升級為 master 節(jié)點,否則 master 節(jié)點就漂移到其他數(shù)據(jù)中心了。

cluster-allow-reads-when-down

默認是 no,表示當集群因主節(jié)點數(shù)量達不到最小值或者哈希槽沒有完全分配而被標記為失效時,節(jié)點將停止所有客戶端請求。

設(shè)置成 yes,則允許集群失效的情況下依然可從節(jié)點中讀取數(shù)據(jù),保證了高可用。

cluster-allow-pubsubshard-when-down

配置成 yes,表示當集群因主節(jié)點數(shù)量達不到最小值或者哈希槽沒有完全分配而被標記為失效時,pub/sub 依然可以正常運行。

cluster-link-sendbuf-limit

設(shè)置每個集群總線連接的發(fā)送字節(jié)緩沖區(qū)的內(nèi)存使用限制,超過限制緩沖區(qū)將被清空(主要為了防止發(fā)送緩沖區(qū)發(fā)送給慢速連接時無限延長時間的問題)。

默認禁用,建議最小設(shè)置1gb,這樣默認情況下集群連接緩沖區(qū)可以容納至少一pubsub消息(client-query-buffer-limit 默認是1gb);

以上就是Redis Cluster原理及配置詳解的詳細內(nèi)容,更多關(guān)于Redis Cluster原理配置的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Redis哨兵監(jiān)控的使用

    Redis哨兵監(jiān)控的使用

    在Redis集群模式中,哨兵模式是一種常用的方案,本文主要介紹了Redis哨兵監(jiān)控的使用,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • 華為歐拉openEuler編譯安裝Redis的實現(xiàn)步驟

    華為歐拉openEuler編譯安裝Redis的實現(xiàn)步驟

    本文主要介紹了華為歐拉openEuler編譯安裝Redis的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 基于Redis實現(xiàn)短信驗證碼登錄項目示例(附源碼)

    基于Redis實現(xiàn)短信驗證碼登錄項目示例(附源碼)

    手機登錄驗證在很多網(wǎng)頁上都得到使用,本文主要介紹了基于Redis實現(xiàn)短信驗證碼登錄項目示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • redis中的配置以及密碼設(shè)置方式

    redis中的配置以及密碼設(shè)置方式

    這篇文章主要介紹了redis中的配置以及密碼設(shè)置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • redis中5種數(shù)據(jù)基礎(chǔ)查詢命令

    redis中5種數(shù)據(jù)基礎(chǔ)查詢命令

    本文主要介紹了redis中5種數(shù)據(jù)基礎(chǔ)查詢命令,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Redis中緩存和數(shù)據(jù)庫雙寫數(shù)據(jù)不一致的原因及解決方案

    Redis中緩存和數(shù)據(jù)庫雙寫數(shù)據(jù)不一致的原因及解決方案

    這篇文章主要介紹了Redis中緩存和數(shù)據(jù)庫雙寫數(shù)據(jù)不一致的原因及解決方案,文中通過圖文結(jié)合的方式講解的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • Redis:Redisson分布式鎖的使用方式(推薦使用)

    Redis:Redisson分布式鎖的使用方式(推薦使用)

    這篇文章主要介紹了Redis:Redisson分布式鎖的使用方式(推薦使用),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Redis分布式鎖的實現(xiàn)方式(redis面試題)

    Redis分布式鎖的實現(xiàn)方式(redis面試題)

    這篇文章主要介紹了Redis分布式鎖的實現(xiàn)方式(面試常見),需要的朋友可以參考下
    2020-01-01
  • redis數(shù)據(jù)結(jié)構(gòu)之壓縮列表

    redis數(shù)據(jù)結(jié)構(gòu)之壓縮列表

    這篇文章主要介紹了redis數(shù)據(jù)結(jié)構(gòu)之壓縮列表,壓縮列表是列表list和hash數(shù)據(jù)結(jié)構(gòu)的底層實現(xiàn)之一,是redis為了節(jié)約內(nèi)存而開發(fā)的,由一系列特殊編碼的連續(xù)內(nèi)存塊組成的順序型數(shù)據(jù)結(jié)構(gòu),下面詳細內(nèi)容需要的小伙伴可以參考一下
    2022-03-03
  • 基于redis樂觀鎖實現(xiàn)并發(fā)排隊

    基于redis樂觀鎖實現(xiàn)并發(fā)排隊

    這篇文章主要介紹了基于redis樂觀鎖實現(xiàn)并發(fā)排隊的相關(guān)資料,需要的朋友可以參考下
    2022-12-12

最新評論