1.安裝redis,執行命令brew install redisnode
2.安裝完成後,brew info redis,能夠查看redis的安裝路徑redis
3.cd /usr/local/Cellar/redis/3.0.7 進入redis安裝路徑app
4.在/usr/local/etc下創建cluster/7001,7002,7003目錄ide
5.複製3步驟中的bin目錄下的redis-server redis.conf 文件到7001,7002,7003目錄,spa
修改redis.conf中端口爲7000,7001,7002;3d
修改redis.conf文件的cluster-config-file參數爲server
nodes-7000.confget
nodes-7001.confhash
nodes-7002.confit
開啓集羣相關參數
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
6.分別啓動3個實例
cd /usr/local/etc/cluster/7000
redis-server redis.conf
cd /usr/local/etc/cluster/7001
redis-server redis.conf
cd /usr/local/etc/cluster/7002
redis-server redis.conf
對應節點的配置文件路徑:/usr/local/var/db/redis
7.經過客戶端登陸查看啓動狀況
redis-cli -p 7000
到目前3各服務端已經啓動成功,但並無自動構建集羣,由於三者還處於「我不認識你,你不屬於我」的狀態,它們每一個都是孤零零的Redis節點,或者是隻包含了一個節點的集羣 ,經過cluster meet 命令來完成集羣的構建
8. 127.0.0.1:7000> cluster meet 127.0.0.1 7001
OK
127.0.0.1:7000> cluster meet 127.0.0.1 7002
OK
127.0.0.1:7000> cluster nodes
c9c6e633a6a5500a92dfffd899bc9dd547eff3fb 127.0.0.1:7000 myself,master - 0 0 0 connected
99263f7ebfba6a86b6755b1defb3a83d8d5e78df 127.0.0.1:7001 master - 0 1469926275334 1 connected
b1cb76440c85df5fc100e4034d6dd6c890d81d9f 127.0.0.1:7002 master - 0 1469926276376 2 connected
經過cluster nodes 查看集羣構建成功,是否集羣搭建工做就完成了呢?非也,咱們經過cluster info命令來查看集羣的狀態
9.127.0.0.1:7000> cluster info
cluster_state:fail
cluster_slots_assigned:6
cluster_slots_ok:6
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:3
cluster_size:3
cluster_current_epoch:2
cluster_my_epoch:1
cluster_stats_messages_sent:35
cluster_stats_messages_received:35
能夠看到集羣狀態是fail狀態,爲何是fail狀態?經過查詢redis fail狀態解釋,就是16384個hash slot 尚未被分配給集羣中節點。咱們接下來分配slot
10.有兩種方式來分配slot:
一種是經過cluster addslots命令來分配在slot,這種方式是一個個slot添加到指定節點,比較麻煩。
第二種是直接在配置文件中指定,就是第五步中指定的nodes-7000/7001/7002.conf配置文件,在每一個文件中包含myself中的行的末尾添加slot
c9c6e633a6a5500a92dfffd899bc9dd547eff3fb 127.0.0.1:7000 myself,master - 0 0 0 connected 0-5000
99263f7ebfba6a86b6755b1defb3a83d8d5e78df 127.0.0.1:7001 master - 0 1469925269256 1 connected 5001-10000
b1cb76440c85df5fc100e4034d6dd6c890d81d9f 127.0.0.1:7002 master - 0 1469925270085 2 connected 10001-16383
配置完成後重啓3個節點的redis服務端
11.127.0.0.1:7000> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:3
cluster_size:3
cluster_current_epoch:2
cluster_my_epoch:0
cluster_stats_messages_sent:3497
cluster_stats_messages_received:3413
至此redis集羣配置完成,能夠在客戶端進去set,get等操做
127.0.0.1:7000> set hello world
OK
127.0.0.1:7000> get hello
"world"
127.0.0.1:7000>