1.安装redis,执行命令brew install redis


2.安装完成后,brew info redis,可以查看redis的安装路径


3.cd /usr/local/Cellar/redis/3.0.7 进入redis安装路径


4.在/usr/local/etc下建立cluster/7001,7002,7003目录


5.复制3步骤中的bin目录下的redis-server redis.conf 文件到7001,7002,7003目录,

修改redis.conf中端口为7000,7001,7002;

修改redis.conf文件的cluster-config-file参数为

nodes-7000.conf

nodes-7001.conf

nodes-7002.conf

开启集群相关参数

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>