Redis 3.0 就要自帶集群功能了, 去看了一下這里還有官方教程之后, 發(fā)現(xiàn)似乎必須用命令行來搞著, 而且官方提供的 redis-trib.rb 要求至少 3 個節(jié)點才能建立一個集群, 這規(guī)格是向黨支部看齊么... 至少 3 個節(jié)點這個還是略坑, 而且不能自動添加節(jié)點 (難道要我啟
Redis 3.0 就要自帶集群功能了, 去看了一下這里還有官方教程之后, 發(fā)現(xiàn)似乎必須用命令行來搞著, 而且官方提供的 redis-trib.rb 要求至少 3 個節(jié)點才能建立一個集群, 這規(guī)格是向黨支部看齊么... 如何在 redis-cli 手動啟動集群呢, 請隨意連上一個空的支持集群模式的節(jié)點, 然后執(zhí)行
cluster addslots 0 1 2 ... 16383
...
可是要實打?qū)嵉貜念^寫到尾的哦. 所以如果可以的話, 手動寫個腳本來干這事情吧.cluster nodes
e7f4fcc0dd003fc107333a4132a471ad306d5513 127.0.0.1:8001 master - 0 1414033928009 3 connected 0-2729 8192-10921
bd239f7dbeaba9541586a708484cdce0ca99aba5 127.0.0.1:8000 master - 0 1414033929011 2 connected 2730-8191
787e06e9d96e6a9a3d02c7f3ec14e243882293e9 127.0.0.1:7999 myself,master - 0 0 1 connected 10922-16383
cluster meet
命令. 如cluster meet 127.0.0.1 7999
e7f4fcc0dd003fc107333a4132a471ad306d5513 127.0.0.1:8001 master - 0 1414034715486 3 connected 0-2729 8192-10921
bd239f7dbeaba9541586a708484cdce0ca99aba5 127.0.0.1:8000 master - 0 1414034714983 2 connected 2730-8191
787e06e9d96e6a9a3d02c7f3ec14e243882293e9 127.0.0.1:7999 master - 0 1414034714482 1 connected 10922-16383
a0fa298711f5da94cb8acc0ed913970f7b00c7af 127.0.0.1:8010 myself,master - 0 0 0 connected
set "foo14308" "bar"
第一步, 鎖定槽位. 這個操作需要分開進行. 首先用 redis-cli 連上新節(jié)點 (上述例子中端口 8010 的那個) 并執(zhí)行
cluster setslot 7 importing e7f4fcc0dd003fc107333a4132a471ad306d5513
e7f4fcc0dd003fc107333a4132a471ad306d5513
的節(jié)點 (也就是 7 號槽位的所有者) 導(dǎo)入 7 號槽.cluster setslot 7 migrating a0fa298711f5da94cb8acc0ed913970f7b00c7af
cluster getkeysinslot 7 10
migrate 127.0.0.1 8010 foo14308 0 15000
cluster setslot 7 node a0fa298711f5da94cb8acc0ed913970f7b00c7af
在知道以上這些的基礎(chǔ)上, 做了一個簡單的集群小工具, 能夠在單節(jié)點上啟動集群, 以及將一個新節(jié)點加入集群中并且自動平衡槽位. 此 Python 工具已加入 GitHub, 歡迎大家拍磚.
本文出自:http://blog.bitfoc.us, 原文地址:http://blog.bitfoc.us/?p=524, 感謝原作者分享。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com