成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

數(shù)據(jù)庫(kù) Redis
集群中的每個(gè)節(jié)點(diǎn)都有一個(gè)配置文件,這個(gè)文件并不是讓程序員編輯的,是我自己創(chuàng)建和更新的,每個(gè)節(jié)點(diǎn)都要使用不同的配置文件,一定要確保同一個(gè)集群中的不同節(jié)點(diǎn)使用的是不同的文件。

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

cluster-enabled

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

cluster-config-file

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

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

cluster-node-timeout

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

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

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

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

cluster-port

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

一個(gè)用于服務(wù)于客戶端的 TCP 端口,比如 6379.

另一個(gè)稱為集群總線端口,節(jié)點(diǎn)使用集群總線進(jìn)行故障監(jiān)測(cè)、配置更新、故障轉(zhuǎn)移等。客戶端不要與集群總線端口通信,另外請(qǐng)確保在防火墻打開這兩個(gè)端口,否則 Redis 集群接地那將無法通信。

cluster-replica-validity-factor

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

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

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

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

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

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

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

cluster-migration-barrier

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

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

默認(rèn)配置為 cluster-migration-barrier 1,是一個(gè)遷移臨界值。

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

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

cluster-allow-replica-migration 默認(rèn)配置為 yes,表示允許自動(dòng)遷移。

cluster-require-full-coverage

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

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

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

cluster-replica-no-failover

默認(rèn)配置為 no?,當(dāng)配置成 yes,在master 宕機(jī)時(shí),slave 不會(huì)做故障轉(zhuǎn)移升為 master。

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

cluster-allow-reads-when-down

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

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

cluster-allow-pubsubshard-when-down

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

cluster-link-sendbuf-limit

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

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

責(zé)任編輯:武曉燕 來源: 碼哥字節(jié)
相關(guān)推薦

2025-06-24 08:32:21

2009-12-21 18:42:42

IT培訓(xùn)NIIT

2021-01-05 06:20:51

云計(jì)算混合云安全云服務(wù)器

2015-08-24 17:51:25

Teradata大數(shù)據(jù)

2009-05-20 09:21:52

IT行業(yè)求職就業(yè)

2023-01-06 09:07:21

前端技術(shù)方案

2011-06-28 13:39:39

北塔IT運(yùn)維BSM

2013-12-02 13:18:39

2013-04-28 10:19:21

UC

2019-02-11 16:00:37

2010-05-31 12:13:23

2020-02-10 15:03:40

疫情非接觸經(jīng)濟(jì)信息技術(shù)

2020-10-26 16:54:56

華為云佟鑫轉(zhuǎn)型

2010-05-05 14:59:38

Media Servi

2017-04-12 09:47:09

移動(dòng)互聯(lián)網(wǎng)無線打印

2014-01-09 14:52:47

創(chuàng)意開源

2020-04-07 08:00:02

Redis緩存數(shù)據(jù)

2010-06-04 13:18:22

2014-09-01 15:33:24

Lua語言基礎(chǔ)table構(gòu)造方式

2025-06-30 00:00:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产一区二区欧美 | 97久久精品午夜一区二区 | 九九综合 | 国产精品一区二区久久 | 国产久视频 | 青青久久av北条麻妃海外网 | 成人a免费 | 亚洲人va欧美va人人爽 | 拍真实国产伦偷精品 | 亚洲日日操 | 国内精品视频 | 91小视频在线 | 国产色| 凹凸日日摸日日碰夜夜 | 国产成人高清成人av片在线看 | 亚洲精品一区二区 | 久久精品国产一区二区电影 | 国产欧美性成人精品午夜 | 日日操夜夜操天天操 | 亚洲精品一区中文字幕 | 亚洲综合无码一区二区 | 毛片网站在线观看 | 欧一区 | 欧美在线 | 狼人伊人影院 | 91在线一区二区 | 国产高清免费视频 | 狠狠干五月天 | 欧美在线观看一区二区 | 国产午夜精品一区二区三区嫩草 | 日日碰狠狠躁久久躁96avv | 女人精96xxx免费网站p | 伊人网91| 国产精品久久久久久久久久久久 | 亚洲免费网站 | 一区二区三区亚洲视频 | 久久精品免费一区二区 | 亚洲成人一区 | 免费观看一级毛片 | 日韩在线中文 | 久久久久久久一区 |