redis redis-trib.rb工具的使用

官網(wǎng):https://redis.io/documentation
中文官網(wǎng):http://www.redis.cn/documentation.html

redis redis-trib.rb工具的使用

1押框、create:創(chuàng)建集群
2垒拢、check:檢查集群
3厌蔽、info:查看集群信息
4蹲蒲、fix:修復(fù)集群
5、reshard:在線遷移slot
6、rebalance:平衡集群節(jié)點(diǎn)slot數(shù)量
7、add-node:將新節(jié)點(diǎn)加入集群
8卷拘、del-node:從集群中刪除節(jié)點(diǎn)
9、set-timeout:設(shè)置集群節(jié)點(diǎn)間心跳連接的超時(shí)時(shí)間
10祝高、call:在集群全部節(jié)點(diǎn)上執(zhí)行命令
11栗弟、import:將外部redis數(shù)據(jù)導(dǎo)入集群

創(chuàng)建集群

用戶無需指定哪臺(tái)節(jié)點(diǎn)為master,哪臺(tái)節(jié)點(diǎn)為slave工闺,因?yàn)閞edis內(nèi)部算法幫我們實(shí)現(xiàn)了

  • create
  • --replicas # 可選參數(shù)悠鞍,replicas表示每個(gè)master需要有幾個(gè)slave咒程。
 # 只有master節(jié)點(diǎn)的創(chuàng)建方式
./redis-trib.rb create  192.168.66.2:7000 192.168.66.2:7001 192.168.66.2:7002 192.168.66.3:7003 192.168.66.3:7004 192.168.66.3:7005
使用 --replicas 1 創(chuàng)建 每個(gè)master帶一個(gè) slave 指令
./redis-trib.rb create --replicas 1  192.168.66.2:7000 192.168.66.2:7001 192.168.66.2:7002 192.168.66.3:7003 192.168.66.3:7004 192.168.66.3:7005

檢查集群情況

  • check
./redis-trib.rb check 192.168.66.2:7000    #后面的IP與端口,隨便指定集群中的一個(gè)就行了。

查看集群信息

  • info
./redis-trib.rb info 192.168.66.2:7000
輸出:
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.

在線遷移slot

  • reshard
  • host:port:這個(gè)是必傳參數(shù)吃警,用來從一個(gè)節(jié)點(diǎn)獲取整個(gè)集群信息檐迟,相當(dāng)于獲取集群信息的入口古胆。
  • --from <arg>:需要從哪些源節(jié)點(diǎn)上遷移slot甩骏,可從多個(gè)源節(jié)點(diǎn)完成遷移清笨,以逗號(hào)隔開,傳遞的是節(jié)點(diǎn)的node id溪猿,還可以直接傳遞--from all,這樣源節(jié)點(diǎn)就是集群的所有節(jié)點(diǎn)纫塌,不傳遞該參數(shù)的話诊县,則會(huì)在遷移過程中提示用戶輸入。
  • --to <arg>:slot需要遷移的目的節(jié)點(diǎn)的node id措左,目的節(jié)點(diǎn)只能填寫一個(gè)依痊,不傳遞該參數(shù)的話,則會(huì)在遷移過程中提示用戶輸入怎披。
  • --slots <arg>:需要遷移的slot數(shù)量胸嘁,不傳遞該參數(shù)的話,則會(huì)在遷移過程中提示用戶輸入凉逛。
  • --yes:設(shè)置該參數(shù)性宏,可以在打印執(zhí)行reshard計(jì)劃的時(shí)候,提示用戶輸入yes確認(rèn)后再執(zhí)行reshard状飞。
  • --timeout <arg>:設(shè)置migrate命令的超時(shí)時(shí)間毫胜。
  • --pipeline <arg>:定義cluster getkeysinslot命令一次取出的key數(shù)量书斜,不傳的話使用默認(rèn)值為10。
./redis-trib.rb reshard --from all --to 80b661ecca260c89e3d8ea9b98f77edaeef43dcd --slots 11 

平衡集群節(jié)點(diǎn)slot數(shù)量

  • rebalance
  • host:port:這個(gè)是必傳參數(shù)酵使,用來從一個(gè)節(jié)點(diǎn)獲取整個(gè)集群信息荐吉,相當(dāng)于獲取集群信息的入口。
  • --weight <arg>:節(jié)點(diǎn)的權(quán)重口渔,格式為node_id=weight样屠,如果需要為多個(gè)節(jié)點(diǎn)分配權(quán)重的話,需要添加多個(gè)--weight <arg>參數(shù)缺脉,即--weight b31e3a2e=5 --weight 60b8e3a1=5痪欲,node_id可為節(jié)點(diǎn)名稱的前綴,只要保證前綴位數(shù)能唯一區(qū)分該節(jié)點(diǎn)即可枪向。沒有傳遞–weight的節(jié)點(diǎn)的權(quán)重默認(rèn)為1勤揩。
  • --auto-weights:這個(gè)參數(shù)在rebalance流程中并未用到。
  • --threshold <arg>:只有節(jié)點(diǎn)需要遷移的slot閾值超過threshold秘蛔,才會(huì)執(zhí)行rebalance操作陨亡。具體計(jì)算方法可以參考下面的rebalance命令流程的第四步。
  • --use-empty-masters:rebalance是否考慮沒有節(jié)點(diǎn)的master深员,默認(rèn)沒有分配slot節(jié)點(diǎn)的master是不參與rebalance的负蠕,設(shè)置--use-empty-masters可以讓沒有分配slot的節(jié)點(diǎn)參與rebalance。
  • --timeout <arg>:設(shè)置migrate命令的超時(shí)時(shí)間倦畅。
  • --simulate:設(shè)置該參數(shù)遮糖,可以模擬rebalance操作,提示用戶會(huì)遷移哪些slots叠赐,而不會(huì)真正執(zhí)行遷移操作欲账。
  • --pipeline <arg>:與reshar的pipeline參數(shù)一樣,定義cluster getkeysinslot命令一次取出的key數(shù)量芭概,不傳的話使用默認(rèn)值為10赛不。

增加一個(gè)主節(jié)點(diǎn)

./redis-trib.rb add-node 192.168.66.3:7006 192.168.66.2:7000

# 添加成功,但是并沒有指定 slot ,所以必須 遷移slot節(jié)點(diǎn)
./redis-trib.rb reshard 192.168.66.2:7000

# 提示一 :How many slots do you want to move (from 1 to 16384)?
為了平衡每個(gè)master管理的slot的個(gè)數(shù)罢洲,所以輸入 16384/master  的數(shù)量踢故。如這里為4 那么就是 16384/4 = 4096個(gè)。
輸入 4096

# 提示二:What is the receiving node ID?(接受的node ID是多少)
            890d2c8d989cce50e5fa48e37cd35738887f3f7d # 7006的ID

# 提示三: Please enter all the source node IDs.
           Type 'all' to use all the nodes as source nodes for the hash slots.
           Type 'done' once you entered all the source nodes IDs.
                  (要從哪個(gè)節(jié)點(diǎn)中獲取lost 惹苗?)
不打算從特定的節(jié)點(diǎn)上取出指定數(shù)量的哈希槽殿较, 那么可以輸入 all
否則輸入某個(gè)節(jié)點(diǎn)的 node ID 
# 檢查是否成功
./redis-trib.rb check 192.168.66.2:7000  

增加一個(gè)從節(jié)點(diǎn)

# 這樣創(chuàng)建從節(jié)點(diǎn)會(huì)自動(dòng)匹配主節(jié)點(diǎn)
./redis-trib.rb add-node --slave 127.0.0.1:7007 127.0.0.1:7000
        
# 增加從節(jié)點(diǎn)的時(shí)候指定主節(jié)點(diǎn)。
./redis-trib.rb add-node --slave --master-id 890d2c8d989cce50e5fa48e37cd35738887f3f7d 192.168.66.3:7008 192.168.66.2:7000

從集群中刪除節(jié)點(diǎn)

  • del-node
  • host:port:從該節(jié)點(diǎn)獲取集群信息桩蓉。
  • node_id:需要?jiǎng)h除的節(jié)點(diǎn)id淋纲。
./redis-trib.rb del-node 192.168.66.2:7000 d5f6d1d17426bd564a6e309f32d0f5b96962fe53

宕機(jī)情況

  • 當(dāng)某個(gè)從節(jié)點(diǎn)掛掉之后,對(duì)于redis集群來說幾乎沒有什么影響院究,相當(dāng)于這個(gè)從節(jié)點(diǎn)對(duì)應(yīng)的 主節(jié)點(diǎn)少了一個(gè)備份而已帚戳。
  • 當(dāng)某一個(gè)主節(jié)點(diǎn)掛掉之后玷或,redis 會(huì)從這個(gè) 主節(jié)點(diǎn) 的 多個(gè)從節(jié)點(diǎn) 中推選一個(gè)出來,擔(dān)當(dāng)master的工作片任,并且把之前依附在
  • 主節(jié)點(diǎn)的從節(jié)點(diǎn)調(diào)整依附到新的master上偏友。如果新任的master也掛掉并且他沒有從節(jié)點(diǎn)了,那么這個(gè)集群也真正的掛掉了对供。

集群創(chuàng)建時(shí) replicas 參數(shù) 指定情況位他。

  • 使用 --replicas 1 參數(shù)時(shí),如果節(jié)點(diǎn)數(shù)量少于六個(gè)产场。
    報(bào)錯(cuò)
    *** ERROR: Invalid configuration for cluster creation.
    *** Redis Cluster requires at least 3 master nodes.
    *** This is not possible with 5 nodes and 1 replicas per node.
    *** At least 6 nodes are required.
  • 使用 --replicas 1 參數(shù)時(shí)鹅髓,如果節(jié)點(diǎn)數(shù)量 大于六個(gè),且為單數(shù)時(shí)京景。
    這樣會(huì)造成某個(gè)master擁有兩個(gè)salve
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末窿冯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子确徙,更是在濱河造成了極大的恐慌醒串,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鄙皇,死亡現(xiàn)場(chǎng)離奇詭異芜赌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)伴逸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門缠沈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人错蝴,你說我怎么就攤上這事洲愤。” “怎么了顷锰?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵柬赐,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我馍惹,道長(zhǎng)躺率,這世上最難降的妖魔是什么玛界? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任万矾,我火速辦了婚禮,結(jié)果婚禮上慎框,老公的妹妹穿的比我還像新娘良狈。我一直安慰自己,他們只是感情好笨枯,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布薪丁。 她就那樣靜靜地躺著遇西,像睡著了一般。 火紅的嫁衣襯著肌膚如雪严嗜。 梳的紋絲不亂的頭發(fā)上粱檀,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音漫玄,去河邊找鬼茄蚯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛睦优,可吹牛的內(nèi)容都是我干的渗常。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼汗盘,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼皱碘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起隐孽,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤癌椿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后缓醋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體如失,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年送粱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了褪贵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抗俄,死狀恐怖脆丁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情动雹,我是刑警寧澤槽卫,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站胰蝠,受9級(jí)特大地震影響歼培,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茸塞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一躲庄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧钾虐,春花似錦噪窘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽直砂。三九已至,卻和暖如春浩习,著一層夾襖步出監(jiān)牢的瞬間静暂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國打工谱秽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留籍嘹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓弯院,卻偏偏與公主長(zhǎng)得像辱士,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子听绳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容