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>
|