手把手教你搭建 Redis 集群!
點擊上方?java項目開發(fā),選擇?設為星標
優(yōu)質(zhì)文章,及時送達
Redis Cluster 即 Redis 集群,是 Redis 官方在 3.0 版本推出的一套分布式存儲方案。完全去中心化,由多個節(jié)點組成,所有節(jié)點彼此互聯(lián)。Redis 客戶端可以直接連接任何一節(jié)點獲取集群中的鍵值對,不需要中間代理,如果該節(jié)點不存在用戶所指定的鍵值,其內(nèi)部會自動把客戶端重定向到鍵值所在的節(jié)點。
Redis 集群是一個網(wǎng)狀結構,每個節(jié)點都通過 TCP 連接跟其他每個節(jié)點連接。在一個有 N 個節(jié)點的集群中,每個節(jié)點都有 N-1 個流出的 TCP 連接,和 N-1 個流入的連接,這些 TCP 連接會永久保持。

Redis Cluster 同其他分布式存儲系統(tǒng)一樣,主要具備以下兩個功能:
數(shù)據(jù)分區(qū)Redis 集群會將用戶數(shù)據(jù)分散保存至各個節(jié)點中,突破單機 Redis 內(nèi)存最大存儲容量。集群引入了 哈希槽slot的概念,其搭建完成后會生 16384 個哈希槽slot,同時會根據(jù)節(jié)點的數(shù)量大致均等的將 16384 個哈希槽映射到不同的節(jié)點上。當用戶存儲key-value時,集群會先對key進行 CRC16 校驗然后對 16384 取模來決定key-value放置哪個槽,從而實現(xiàn)自動分割數(shù)據(jù)到不同的節(jié)點上。
數(shù)據(jù)冗余Redis 集群支持主從復制和故障恢復。集群使用了主從復制模型,每個主節(jié)點master應至少有一個從節(jié)點slave。假設某個主節(jié)點故障,其所有子節(jié)點會廣播一個數(shù)據(jù)包給集群里的其他主節(jié)點來請求選票,一旦某個從節(jié)點收到了大多數(shù)主節(jié)點的回應,那么它就贏得了選舉,被推選為主節(jié)點,負責處理之前舊的主節(jié)點負責的哈希槽。
關于 Redis Cluster 詳細介紹以及實現(xiàn)原理請參見 Redis Cluster 教程 和 Redis Cluster 規(guī)范,在此不再贅述。
下載 & 安裝 Redis
實驗環(huán)境信息 Linux 版本:CentOS Linux release 7.4.1708 Redis 版本:5.0.3
先在服務器或虛擬機中安裝一個單機 Redis,如果已安裝可以跳過本節(jié),未安裝過的正好學習下。
進入 Redis 待安裝目錄。
Copycd?/usr/local
下載、解壓 Redis 源代碼壓縮包。
Copywget?http://download.redis.io/releases/redis-5.0.3.tar.gz
tar?-zxvf?redis-5.0.3.tar.gz
然后進入解壓后的目錄并使用 make 命令執(zhí)行編譯安裝 Redis。
Copycd?redis-5.0.3
make?&&?make?install
不要高興,因為你極有可能會遇到因為 GCC 編譯器未安裝導致編譯失敗的情況。不要著急,請順序執(zhí)行如下命令。
Copyyum?-y?install?gcc
make?distclean
make?&&?make?install
Redis 基于 C 語言開發(fā),故編譯源碼需要 GCC(Linux下的一個編譯器,這里需要用來編譯
.c文件)的支持。如機器上未安裝需要先執(zhí)行命令yum -y install gcc安裝 GCC 編譯工具,然后make distclean清除之前生成的文件,最后make && make install重新編譯安裝。
最終出現(xiàn)類似下文輸出則表示 Redis 安裝成功。
Copy......
Hint:?It's?a?good?idea?to?run?'make?test'?;)
????INSTALL?install
????INSTALL?install
????INSTALL?install
????INSTALL?install
????INSTALL?install
make[1]:?離開目錄“/usr/local/redis-5.0.3/src”
如果源碼編譯無誤且執(zhí)行結果正確,make install命令會將程序安裝至系統(tǒng)預設的可執(zhí)行文件存放路徑,一般是/usr/local/bin目錄,可以通過如下終端輸出確認。當然,也可以使用make install PREFIX=命令安裝到指定路徑。
Copy[root@localhost?bin]#?cd?/usr/local/bin
[root@localhost?bin]#?ls?-l
總用量?32672
-rwxr-xr-x.?1?root?root?4367328?3月???6?06:11?redis-benchmark
-rwxr-xr-x.?1?root?root?8092024?3月???6?06:11?redis-check-aof
-rwxr-xr-x.?1?root?root?8092024?3月???6?06:11?redis-check-rdb
-rwxr-xr-x.?1?root?root?4802696?3月???6?06:11?redis-cli
lrwxrwxrwx.?1?root?root??????12?3月???6?06:11?redis-sentinel?->?redis-server
-rwxr-xr-x.?1?root?root?8092024?3月???6?06:11?redis-server
至此,單機 Redis 安裝完成。
搭建 Redis 集群
進入正題。
依據(jù) Redis Cluster 內(nèi)部故障轉(zhuǎn)移實現(xiàn)原理,Redis 集群至少需要 3 個主節(jié)點,而每個主節(jié)點至少有 1 從節(jié)點,因此搭建一個集群至少包含 6 個節(jié)點,三主三從,并且分別部署在不同機器上。
條件有限,測試環(huán)境下我們只能在一臺機器上創(chuàng)建一個偽集群,通過不同的 TCP 端口啟動多個 Redis 實例,組成集群。
目前 Redis Cluster 的搭建有兩種方式:
手動方式搭建,即手動執(zhí)行 cluster 命令,一步步完成搭建流程。 自動方式搭建,即使用官方提供的集群管理工具快速搭建。
兩種方式原理一樣,自動搭建方式只是將手動搭建方式中需要執(zhí)行的 Redis 命令封裝到了可執(zhí)行程序。生產(chǎn)環(huán)境下推薦使用第二種方式,簡單快捷,不易出錯。不過本文實戰(zhàn)演示兩種方式都會提及。
手動方式搭建
啟動節(jié)點
搭建集群的第一步就是要先把參與搭建集群的每個節(jié)點啟動起來。
由于我們這是在一臺機器上模擬多個節(jié)點,可以預先規(guī)劃下各個節(jié)點的屬性:
| 節(jié)點編號 | IP 地址 | TCP 端口 | 節(jié)點類型 | 從節(jié)點 | 啟動配置 |
|---|---|---|---|---|---|
| A | 127.0.0.1 | 7001 | 主 | D | /usr/local/redis-cluster/7001/redis.conf |
| B | 127.0.0.1 | 7002 | 主 | E | /usr/local/redis-cluster/7002/redis.conf |
| C | 127.0.0.1 | 7003 | 主 | F | /usr/local/redis-cluster/7003/redis.conf |
| D | 127.0.0.1 | 8001 | 從 | / | /usr/local/redis-cluster/8001/redis.conf |
| E | 127.0.0.1 | 8002 | 從 | / | /usr/local/redis-cluster/8002/redis.conf |
| F | 127.0.0.1 | 8003 | 從 | / | /usr/local/redis-cluster/8003/redis.conf |
根據(jù)上述規(guī)劃,可以先通過如下命令創(chuàng)建各個節(jié)點啟動配置文件的存放目錄。
Copymkdir?/usr/local/redis-cluster
cd?redis-cluster
mkdir?-p?7001?7002?7003?8001?8002?8003
順序執(zhí)行如下行命令,進入 Redis 源碼包目錄并將默認配置文件redis.conf分別復制到六個節(jié)點配置存放目錄中,作為各自節(jié)點啟動配置文件。
Copycd?/usr/local/redis-5.0.3
cp?redis.conf?/usr/local/redis-cluster/7001
cp?redis.conf?/usr/local/redis-cluster/7002
cp?redis.conf?/usr/local/redis-cluster/7003
cp?redis.conf?/usr/local/redis-cluster/8001
cp?redis.conf?/usr/local/redis-cluster/8002
cp?redis.conf?/usr/local/redis-cluster/8003
接下來需要分別修改每個節(jié)點的配置文件。下面貼的是節(jié)點 A 的配置文件/usr/local/redis-cluster/7001/redis.conf中啟用或修改的一些必要參數(shù)。其他節(jié)點 B、C、D、E、F 參照修改,注意把涉及端口的地方修改成各自節(jié)點預先規(guī)劃的即可。
Copybind?192.168.83.128????????????????????#?設置當前節(jié)點主機地址
port?7001??????????????????????????????#?設置客戶端連接監(jiān)聽端口
pidfile?/var/run/redis_7001.pid????????#?設置?Redis?實例?pid?文件
daemonize?yes??????????????????????????#?以守護進程運行?Redis?實例
cluster-enabled?yes????????????????????#?啟用集群模式
cluster-node-timeout?15000?????????????#?設置當前節(jié)點連接超時毫秒數(shù)
cluster-config-file?nodes-7001.conf????#?設置當前節(jié)點集群配置文件路徑
完成上述工作就可以通過如下幾組命令啟動待搭建集群中的 6 個節(jié)點了。
Copy/usr/local/bin/redis-server?/usr/local/redis-cluster/7001/redis.conf
/usr/local/bin/redis-server?/usr/local/redis-cluster/7002/redis.conf
/usr/local/bin/redis-server?/usr/local/redis-cluster/7003/redis.conf
/usr/local/bin/redis-server?/usr/local/redis-cluster/8001/redis.conf
/usr/local/bin/redis-server?/usr/local/redis-cluster/8002/redis.conf
/usr/local/bin/redis-server?/usr/local/redis-cluster/8003/redis.conf
最后通過ps -ef|grep redis命令確認各個節(jié)點服務是否已經(jīng)正常運行。
Copy[root@localhost?bin]#?ps?-ef|grep?redis
root???????5613??????1??0?04:25??????????00:00:00?/usr/local/bin/redis-server?127.0.0.1:7001?[cluster]
root???????5650??????1??0?04:26??????????00:00:00?/usr/local/bin/redis-server?127.0.0.1:7002?[cluster]
root???????5661??????1??0?04:26??????????00:00:00?/usr/local/bin/redis-server?127.0.0.1:7003?[cluster]
root???????5672??????1??0?04:27??????????00:00:00?/usr/local/bin/redis-server?127.0.0.1:8001?[cluster]
root???????5681??????1??0?04:27??????????00:00:00?/usr/local/bin/redis-server?127.0.0.1:8002?[cluster]
root???????5690??????1??0?04:27??????????00:00:00?/usr/local/bin/redis-server?127.0.0.1:8003?[cluster]
root???????5731???1311??0?04:28?pts/0????00:00:00?grep?--color=auto?redis
如上輸出可以看出上面規(guī)劃的 6 個節(jié)點都成功啟動。
節(jié)點握手
雖然上面 6 個節(jié)點都啟用了群集支持,但默認情況下它們是不相互信任或者說沒有聯(lián)系的。節(jié)點握手就是在各個節(jié)點之間創(chuàng)建鏈接(每個節(jié)點與其他節(jié)點相連),形成一個完整的網(wǎng)格,即集群。
節(jié)點握手的命令如下:
Copycluster?meet?ip?port
但為了創(chuàng)建群集,不需要發(fā)送形成完整網(wǎng)格所需的所有 cluster meet 命令。只要能發(fā)送足夠的cluster meet消息,可以讓每個節(jié)點都可以通過一系列已知節(jié)點到達每個其他節(jié)點,缺失的鏈接將被自動創(chuàng)建。
例如,如果我們通過cluster meet將節(jié)點 A 與節(jié)點 B 連接起來,并將 B 與 C 連接起來,則 A 和 C 會自己找到握手方式并創(chuàng)建鏈接。
我們的創(chuàng)建的 6 個節(jié)點可以通過 redis-cli 連接到 A 節(jié)點執(zhí)行如下五組命令完成握手,生產(chǎn)環(huán)境需要將 IP?127.0.0.1替換成外網(wǎng) IP。
Copycluster?meet?127.0.0.1?7002
cluster?meet?127.0.0.1?7003
cluster?meet?127.0.0.1?8001
cluster?meet?127.0.0.1?8002
cluster?meet?127.0.0.1?8003
如上述命令正常執(zhí)行輸出結果如下。
Copy[root@localhost?bin]#?/usr/local/bin/redis-cli?-p?7001
127.0.0.1:7001>?cluster?meet?127.0.0.1?7002
OK
127.0.0.1:7001>?cluster?meet?127.0.0.1?7003
OK
127.0.0.1:7001>?cluster?meet?127.0.0.1?8001
OK
127.0.0.1:7001>?cluster?meet?127.0.0.1?8002
OK
127.0.0.1:7001>?cluster?meet?127.0.0.1?8003
OK
接下來可以通過 cluster nodes 命令查看節(jié)點之間 的鏈接狀態(tài)。我隨機找了兩個節(jié)點 B 和 F 測試,輸出結果如下所示。
Copy[root@localhost?/]#?/usr/local/bin/redis-cli?-p?7002?cluster?nodes
61e8c4ed8d1ff2a765a4dd2c3d300d8121d26e12?127.0.0.1:7001@17001?master?-?0?1552220691885?4?connected
a8a41694f22977fda78863bdfb3fc03dd1fab1bd?127.0.0.1:8002@18002?master?-?0?1552220691000?5?connected
51987c4b5530c81f2845bb9d521daf6d3dce3659?127.0.0.1:8001@18001?master?-?0?1552220690878?3?connected
1b4b3741945d7fed472a1324aaaa6acaa1843ccb?127.0.0.1:7002@17002?myself,master?-?0?1552220690000?1?connected
19147f56e679767bcebb8653262ff7f56ca072a8?127.0.0.1:7003@17003?master?-?0?1552220691000?2?connected
ed6fd72e61b747af3705b210c7164bc68739303e?127.0.0.1:8003@18003?master?-?0?1552220690000?0?connected
[root@localhost?/]#?/usr/local/bin/redis-cli?-p?8002?cluster?nodes
1b4b3741945d7fed472a1324aaaa6acaa1843ccb?127.0.0.1:7002@17002?master?-?0?1552220700255?1?connected
ed6fd72e61b747af3705b210c7164bc68739303e?127.0.0.1:8003@18003?master?-?0?1552220703281?0?connected
19147f56e679767bcebb8653262ff7f56ca072a8?127.0.0.1:7003@17003?master?-?0?1552220700000?2?connected
a8a41694f22977fda78863bdfb3fc03dd1fab1bd?127.0.0.1:8002@18002?myself,master?-?0?1552220701000?5?connected
61e8c4ed8d1ff2a765a4dd2c3d300d8121d26e12?127.0.0.1:7001@17001?master?-?0?1552220702275?4?connected
51987c4b5530c81f2845bb9d521daf6d3dce3659?127.0.0.1:8001@18001?master?-?0?1552220701265?3?connected
可以看到,節(jié)點 B 和節(jié)點 F 都已經(jīng)分別和其他 5 個節(jié)點建立鏈接。
至此,節(jié)點握手完成。
分配槽位
此時 Redis 集群還并沒有處于上線狀態(tài),可以在任意一節(jié)點上執(zhí)行 cluster info 命令來查看目前集群的運行狀態(tài)。
Copy[root@localhost?~]#?/usr/local/bin/redis-cli?-p?7001?cluster?info
cluster_state:fail
......
上面輸出cluster_state:fail表示當前集群處于下線狀態(tài)。因為只有給集群中所有主節(jié)點分配好槽位(即哈希槽slot,本文第一小節(jié)有提及)集群才能上線。
分配槽位的命令如下:
Copycluster?addslots?slot?[slot?...]
根據(jù)預先規(guī)劃,這一步需要使用 cluster addslots 命令手動將 16384 個哈希槽大致均等分配給主節(jié)點?A、B、C。
Copy/usr/local/bin/redis-cli?-p?7001?cluster?addslots?{0..5461}
/usr/local/bin/redis-cli?-p?7002?cluster?addslots?{5462..10922}
/usr/local/bin/redis-cli?-p?7003?cluster?addslots?{10923..16383}
上面三組命令執(zhí)行完畢,可以再次查看目前集群的一些運行參數(shù)。
Copy[root@localhost?~]#?/usr/local/bin/redis-cli?-p?7001?cluster?info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:5
cluster_my_epoch:4
cluster_stats_messages_ping_sent:11413
cluster_stats_messages_pong_sent:10509
cluster_stats_messages_meet_sent:11
cluster_stats_messages_sent:21933
cluster_stats_messages_ping_received:10509
cluster_stats_messages_pong_received:10535
cluster_stats_messages_received:21044
如上輸出cluster_state:ok證明 Redis 集群成功上線。
主從復制
Redis 集群成功上線,不過還沒有給主節(jié)點指定從節(jié)點,此時如果有一個節(jié)點故障,那么整個集群也就掛了,也就無法實現(xiàn)高可用。
集群中需要使用 cluster replicate 命令手動給從節(jié)點配置主節(jié)點。
集群復制命令如下:
Copycluster?replicate?node-id
集群中各個節(jié)點的node-id可以用cluster nodes命令查看,如下輸出1b4b3741945d7fed472a1324aaaa6acaa1843ccb即是主節(jié)點 B 的node-id。
Copy[root@localhost?/]#?/usr/local/bin/redis-cli?-p?8002?cluster?nodes
1b4b3741945d7fed472a1324aaaa6acaa1843ccb?127.0.0.1:7002@17002?master?-?0?1552220700255?1?connected
ed6fd72e61b747af3705b210c7164bc68739303e?127.0.0.1:8003@18003?master?-?0?1552220703281?0?connected
19147f56e679767bcebb8653262ff7f56ca072a8?127.0.0.1:7003@17003?master?-?0?1552220700000?2?connected
a8a41694f22977fda78863bdfb3fc03dd1fab1bd?127.0.0.1:8002@18002?myself,master?-?0?1552220701000?5?connected
61e8c4ed8d1ff2a765a4dd2c3d300d8121d26e12?127.0.0.1:7001@17001?master?-?0?1552220702275?4?connected
51987c4b5530c81f2845bb9d521daf6d3dce3659?127.0.0.1:8001@18001?master?-?0?1552220701265?3?connected
根據(jù)預先規(guī)劃,A主D從;B主E從;C主F從。執(zhí)行如下三組命令分別為從節(jié)點 D、E、F 指定其主節(jié)點,使群集可以自動完成主從復制。
Copy/usr/local/bin/redis-cli?-p?8001?cluster?replicate?61e8c4ed8d1ff2a765a4dd2c3d300d8121d26e12
/usr/local/bin/redis-cli?-p?8002?cluster?replicate?1b4b3741945d7fed472a1324aaaa6acaa1843ccb
/usr/local/bin/redis-cli?-p?8003?cluster?replicate?19147f56e679767bcebb8653262ff7f56ca072a8
命令執(zhí)行成功后,我們便算以手動方式成功搭建了一個 Redis 集群。
最后,再來查看一下集群中的節(jié)點信息。
Copy[root@localhost?~]#?/usr/local/bin/redis-cli?-p?8002?cluster?nodes
1b4b3741945d7fed472a1324aaaa6acaa1843ccb?127.0.0.1:7002@17002?master?-?0?1552233328337?1?connected?5462-10922
ed6fd72e61b747af3705b210c7164bc68739303e?127.0.0.1:8003@18003?slave?19147f56e679767bcebb8653262ff7f56ca072a8?0?1552233327000?2?connected
19147f56e679767bcebb8653262ff7f56ca072a8?127.0.0.1:7003@17003?master?-?0?1552233325000?2?connected?10923-16383
a8a41694f22977fda78863bdfb3fc03dd1fab1bd?127.0.0.1:8002@18002?myself,slave?1b4b3741945d7fed472a1324aaaa6acaa1843ccb?0?1552233327000?5?connected
61e8c4ed8d1ff2a765a4dd2c3d300d8121d26e12?127.0.0.1:7001@17001?master?-?0?1552233327327?4?connected?0-5461
51987c4b5530c81f2845bb9d521daf6d3dce3659?127.0.0.1:8001@18001?slave?61e8c4ed8d1ff2a765a4dd2c3d300d8121d26e12?0?1552233326320?4?connected
自動方式搭建
Redis 3.0 版本之后官方發(fā)布了一個集群管理工具 redis-trib.rb,集成在 Redis 源碼包的src目錄下。其封裝了 Redis 提供的集群命令,使用簡單、便捷。
不過 redis-trib.rb 是 Redis 作者使用 Ruby 語言開發(fā)的,故使用該工具之前還需要先在機器上安裝 Ruby 環(huán)境。后面作者可能意識到這個問題,Redis 5.0 版本開始便把這個工具集成到 redis-cli 中,以--cluster參數(shù)提供使用,其中create命令可以用來創(chuàng)建集群。
啟動節(jié)點
使用集群管理工具搭建集群之前,也是需要先把各個節(jié)點啟動起來的。節(jié)點的啟動方式請參見本文「手動方式創(chuàng)建」-「啟動節(jié)點」一節(jié),此處不再贅述。
集群管理工具搭建
如果您安裝的 Redis 是 3.x 和 4.x 的版本可以使用 redis-trib.rb 搭建,不過之前需要安裝 Ruby 環(huán)境。
先使用 yum 安裝 Ruby 環(huán)境以及其他依賴項。
Copyyum?-y?install?ruby?ruby-devel?rubygems?rpm-build
確認安裝版本。
Copy[root@localhost?redis-cluster]#?ruby?-v
ruby?2.0.0p648?(2015-12-16)?[x86_64-linux]
再使用 redis-trib.rb 腳本搭建集群,具體命令如下所示。
Copy/usr/local/redis-5.0.3/src/redis-trib.rb?create?--replicas?1?127.0.0.1:7001?127.0.0.1:7002?127.0.0.1:7003?127.0.0.1:8001?127.0.0.1:8002?127.0.0.1:8003
不過,本文實驗環(huán)境使用的 Redis 版本是 5.0.3,所以我可以直接使用redis-cli --cluster create命令搭建,具體命令如下所示。
Copy/usr/local/bin/redis-cli?--cluster?create?127.0.0.1:7001?127.0.0.1:7002?127.0.0.1:7003?127.0.0.1:8001?127.0.0.1:8002?127.0.0.1:8003?--cluster-replicas?1
主節(jié)點在前,從節(jié)點在后。其中--cluster-replicas參數(shù)用來指定一個主節(jié)點帶有的從節(jié)點個數(shù),如上--cluster-replicas 1即表示 1 個主節(jié)點有 1 個從節(jié)點。
命令執(zhí)行成功會有類似如下輸出。
Copy[root@localhost?bin]#?redis-cli?--cluster?create?127.0.0.1:7001?127.0.0.1:7002?127.0.0.1:7003?127.0.0.1:8001?127.0.0.1:8002?127.0.0.1:8003?--cluster-replicas?1
>>>?Performing?hash?slots?allocation?on?6?nodes...
Master[0]?->?Slots?0?-?5460
Master[1]?->?Slots?5461?-?10922
Master[2]?->?Slots?10923?-?16383
Adding?replica?127.0.0.1:8001?to?127.0.0.1:7001
Adding?replica?127.0.0.1:8002?to?127.0.0.1:7002
Adding?replica?127.0.0.1:8003?to?127.0.0.1:7003
>>>?Trying?to?optimize?slaves?allocation?for?anti-affinity
[WARNING]?Some?slaves?are?in?the?same?host?as?their?master
M:?32f9819fc7d561bfa2b7189182200e86d9901b8a?127.0.0.1:7001
???slots:[0-5460]?(5461?slots)?master
M:?cca0fbfa374bc175d481e68ee9ed13b65453e967?127.0.0.1:7002
???slots:[5461-10922]?(5462?slots)?master
M:?964cfa1c2dcfe36b6d3c63637f0d57ccb568354e?127.0.0.1:7003
???slots:[10923-16383]?(5461?slots)?master
S:?1b47b9e6e7a79523579b8d2ddcd5e708583ed317?127.0.0.1:8001
???replicates?32f9819fc7d561bfa2b7189182200e86d9901b8a
S:?aba9330f3e70f26a8af4ced1b672fbcc7bc62d78?127.0.0.1:8002
???replicates?cca0fbfa374bc175d481e68ee9ed13b65453e967
S:?254db0830cd764e075aa793144572d5fa3a398f0?127.0.0.1:8003
???replicates?964cfa1c2dcfe36b6d3c63637f0d57ccb568354e
Can?I?set?the?above?configuration??(type?'yes'?to?accept):?yes
>>>?Nodes?configuration?updated
>>>?Assign?a?different?config?epoch?to?each?node
>>>?Sending?CLUSTER?MEET?messages?to?join?the?cluster
Waiting?for?the?cluster?to?join
...
>>>?Performing?Cluster?Check?(using?node?127.0.0.1:7001)
M:?32f9819fc7d561bfa2b7189182200e86d9901b8a?127.0.0.1:7001
???slots:[0-5460]?(5461?slots)?master
???1?additional?replica(s)
S:?aba9330f3e70f26a8af4ced1b672fbcc7bc62d78?127.0.0.1:8002
???slots:?(0?slots)?slave
???replicates?cca0fbfa374bc175d481e68ee9ed13b65453e967
S:?1b47b9e6e7a79523579b8d2ddcd5e708583ed317?127.0.0.1:8001
???slots:?(0?slots)?slave
???replicates?32f9819fc7d561bfa2b7189182200e86d9901b8a
S:?254db0830cd764e075aa793144572d5fa3a398f0?127.0.0.1:8003
???slots:?(0?slots)?slave
???replicates?964cfa1c2dcfe36b6d3c63637f0d57ccb568354e
M:?cca0fbfa374bc175d481e68ee9ed13b65453e967?127.0.0.1:7002
???slots:[5461-10922]?(5462?slots)?master
???1?additional?replica(s)
M:?964cfa1c2dcfe36b6d3c63637f0d57ccb568354e?127.0.0.1:7003
???slots:[10923-16383]?(5461?slots)?master
???1?additional?replica(s)
[OK]?All?nodes?agree?about?slots?configuration.
>>>?Check?for?open?slots...
>>>?Check?slots?coverage...
[OK]?All?16384?slots?covered.
OK,搭建完成!一條命令搞定。
原文:ii081.cn/bTfkBU
-?END - 推薦案例
溫暖提示
為了方便大家更好的學習,本公眾號經(jīng)常分享一些完整的單個功能案例代碼給大家去練習,如果本公眾號沒有你要學習的功能案例,你可以聯(lián)系小編(微信:xxf960513)提供你的小需求給我,我安排我們這邊的開發(fā)團隊免費幫你完成你的案例。 注意:只能提單個功能的需求不能要求功能太多,比如要求用什么技術,有幾個頁面,頁面要求怎么樣?
請長按識別二維碼
想學習更多的java功能案例請關注
Java項目開發(fā)
如果你覺得這個案例以及我們的分享思路不錯,對你有幫助,請分享給身邊更多需要學習的朋友。別忘了《留言+點在看》給作者一個鼓勵哦!


