Redis 集群搭建準(zhǔn)備
下面先搭建一個(gè)最簡(jiǎn)單的 3 個(gè)節(jié)點(diǎn)的集群赵哲,先不為主節(jié)點(diǎn)添加從節(jié)點(diǎn)轩娶,在稍后的文章中會(huì)添加從節(jié)點(diǎn)欧瘪。至于Redis如何安裝將在后面的文章補(bǔ)充上.
現(xiàn)在的假設(shè)我們有 3 個(gè) A,B,C 節(jié)點(diǎn)葬毫,分別部署一個(gè) Redis 節(jié)點(diǎn)题篷。由于測(cè)試環(huán)境受限影響皂甘,現(xiàn)在把 3 個(gè)節(jié)點(diǎn)都部署到一臺(tái)服務(wù)器上。新建 Redis-Cluster 目錄悼凑,然后新建 3 個(gè)文件夾偿枕,分別是:
mkdir Redis-Cluster
mkdir 30001 30002 30003
然后在 30001 30002 30003 中分別生成 redis.conf 文件,文件內(nèi)容分別如下户辫。
port 30001
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
port 30002
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
port 30003
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
執(zhí)行如下命令來分別啟動(dòng)每個(gè) Redis 實(shí)例:
../src/redis-server redis.conf
創(chuàng)建集群
現(xiàn)在我們已經(jīng)有了三個(gè)正在運(yùn)行中的 Redis 實(shí)例渐夸, 接下來我們需要使用這些實(shí)例來創(chuàng)建集群, 并為每個(gè)節(jié)點(diǎn)編寫配置文件渔欢。通過使用 Redis 集群命令行工具 redis-trib 墓塌, 編寫節(jié)點(diǎn)配置文件的工作可以非常容易地完成: redis-trib 位于 Redis 源碼的 >src 文件夾中, 它是一個(gè) Ruby 程序奥额, 這個(gè)程序通過向?qū)嵗l(fā)送特殊命令來完成創(chuàng)建新集群苫幢, 檢查集群, 或者對(duì)集群進(jìn)行重新分片>(reshared)等工作垫挨。
./redis-trib.rb create 192.168.1.179:30001 192.168.1.179:30002 192.168.1.179:30003
執(zhí)行結(jié)果如下,這表示集群中的 16384 個(gè)槽都有至少一個(gè)主節(jié)點(diǎn)在處理韩肝, 集群運(yùn)作正常。
[root@192 src]# ./redis-trib.rb create 192.168.1.179:30001 192.168.1.179:30002 192.168.1.179:30003
>>> Creating cluster
>>> Performing hash slots allocation on 3 nodes...
Using 3 masters:
192.168.1.179:30001
192.168.1.179:30002
192.168.1.179:30003
M: a87f3bd894a5d58fda2c7ba0fb0926e05c8ebf96 192.168.1.179:30001
slots:0-5460 (5461 slots) master
M: 915039a399601973b5d5915f71d8c37f6caeeb45 192.168.1.179:30002
slots:5461-10922 (5462 slots) master
M: c4628faf0aa4cf8d083733abd9e1c10225d7a731 192.168.1.179:30003
slots:10923-16383 (5461 slots) master
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 192.168.1.179:30001)
M: a87f3bd894a5d58fda2c7ba0fb0926e05c8ebf96 192.168.1.179:30001
slots:0-5460 (5461 slots) master
M: 915039a399601973b5d5915f71d8c37f6caeeb45 192.168.1.179:30002
slots:5461-10922 (5462 slots) master
M: c4628faf0aa4cf8d083733abd9e1c10225d7a731 192.168.1.179:30003
slots:10923-16383 (5461 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
到此為止九榔,Redis 最簡(jiǎn)配置的集群就搭建完成了哀峻。