<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Redis Cluster 叢集相關設定,使用叢集方式的你必須重視和知曉。彆嘴上原理說的頭頭是道,而叢集有哪些設定?如何設定讓叢集快到飛起,實現真正的高可用卻一頭霧水,通過下面這些設定詳解也讓你對叢集原理更加深刻。
普通的 Redis 範例是不能成為叢集的一員,想要將該節點加入 Redis Cluster,需要設定 cluster-enabled yes
。
cluster-config-file nodes-6379.conf
指定叢集中的每個節點檔案。
叢集中的每個節點都有一個組態檔,這個檔案並不是讓程式設計師編輯的,是我自己建立和更新的,每個節點都要使用不同的組態檔,一定要確保同一個叢集中的不同節點使用的是不同的檔案。
設定叢集節點不可用的最大超時時間,節點失效檢測。叢集中當一個節點向另一個節點傳送PING命令,但是目標節點未在給定的時限內返回PING命令的回覆時,那麼傳送命令的節點會將目標節點標記為PFAIL(possible failuer,可能已失效);
如果master 節點超過這個時間還是無響應,則用它的從節點將啟動故障遷移,升級成主節點。
注意,任何一個節點在這個時間之內如果還是沒有連上大部分的主節點,則此節點將停止接收任何請求。
預設設定是 cluster-node-timeout 15000
,單位是毫秒數。
該埠是叢集匯流排監聽 TCP 連線的埠,預設設定為 cluster-port 0
,我就會把埠繫結為使用者端命令埠 + 10000(使用者端埠預設 6379,所以繫結為 16379 作為叢集匯流排埠)。每個 Redis Cluster 節點都需要開放兩個埠:
該設定用於決定當 Redis Cluster 叢集中,一個 master 宕機後,如何選擇一個 slave 節點完成故障轉移自動恢復(failover)。如果設定為 0 ,則不管 slave 與 master 之間斷開多久,都認為自己有資格成為 master。
下面提供了兩種方式來評估 slave 的資料是否太舊。
ping
操作、master 節點傳輸過來的寫指令、上次可 master 斷開的時間等。如果上次互動的時間過去很久,那麼這個節點就不會發起 failover。針對第二點,互動時間可以通過設定定義,如果 slave 與 master 上次互動的時間大於 (node-timeout * cluster-replica-validity-factor) + repl-ping-replica-period
,該 slave 就不會發生 failover。
例如,`node-timeout = 30
秒,cluster-replica-validity-factor=10
,repl-ping-slave-period=10
秒, 表示slave節點與master節點上次互動時間已經過去了310秒,那麼slave節點就不會做failover。
調大 cluster-replica-validity-factor
則允許儲存過舊資料的 slave 節點提升為 master,調小的話可能會導致沒有 slave 節點可以升為 master 節點。
考慮高可用,建議大家設定為 cluster-replica-validity-factor 0
。
沒有 slave 節點的 master 節點稱為孤兒 master節點,這個設定就是用於防止出現裸奔的 master。
當某個 master 的 slave 節點宕機後,叢集會從其他 master 中選出一個富餘的 slave 節點遷移過來,確保每個 master 節點至少有一個 slave 節點,防止當孤立 master 節點宕機時,沒有slave節點可以升為 master 導致叢集不可用。
預設設定為 cluster-migration-barrier 1
,是一個遷移臨界值。
含義是:遷移後 master 節點至少還有 1 個 slave 節點才能做遷移操作。比如 master A 節點有2個以上 slave 節點 ,當叢集出現孤兒 master B 節點時,A 節點富餘的 slave 節點可以遷移到 master B 節點上。
生產環境建議維持預設值,最大可能保證高可用,設定為非常大的值或者設定 cluster-allow-replica-migration no
禁用自動遷移功能。
cluster-allow-replica-migration
預設設定為 yes,表示允許自動遷移。
預設設定是 yes
,表示為當 redis cluster 發現至少還有一個 雜湊槽沒有被分配時禁止查詢操作。
這就會導致叢集部分宕機,整個叢集就不可用了,當所有雜湊槽都有分配,叢集會自動變為可用狀態。
如果你希望 cluster 的子集依然可用,設定成 cluster-require-full-coverage yes
。
預設設定為 no
,當設定成 yes
,在master 宕機時,slave 不會做故障轉移升為 master。
這個設定在多資料中心的情況下會很有用,你可能希望某個資料中心永遠不要升級為 master 節點,否則 master 節點就漂移到其他資料中心了。
預設是 no
,表示當叢集因主節點數量達不到最小值或者雜湊槽沒有完全分配而被標記為失效時,節點將停止所有使用者端請求。
設定成 yes
,則允許叢集失效的情況下依然可從節點中讀取資料,保證了高可用。
設定成 yes
,表示當叢集因主節點數量達不到最小值或者雜湊槽沒有完全分配而被標記為失效時,pub/sub 依然可以正常執行。
設定每個叢集匯流排連線的傳送位元組緩衝區的記憶體使用限制,超過限制緩衝區將被清空(主要為了防止傳送緩衝區傳送給慢速連線時無限延長時間的問題)。
預設禁用,建議最小設定1gb,這樣預設情況下叢集連線緩衝區可以容納至少一pubsub訊息(client-query-buffer-limit 預設是1gb);
以上就是Redis Cluster原理及設定詳解的詳細內容,更多關於Redis Cluster原理設定的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45