实验环境:
三主三从,从负责备份.
192.168.2.201 | 6381 |
192.168.2.201 | 6382 |
192.168.2.202 | 6381 |
192.168.2.202 | 6382 |
192.168.2.203 | 6381 |
192.168.2.203 | 6382 |
三台机器,每台机器两个实例,总共6个实例。
1.创建文件夹
[root@localhost ~]# mkdir -p /usr/local/redis-cluster/6381
[root@localhost ~]# mkdir -p /usr/local/redis-cluster/6382
2.解压编译安装redis
[root@localhost softwares]# tar -zxvf redis-5.0.3.tar.gz
[root@localhost softwares]# cd redis-5.0.3/ [root@localhost softwares]# make MALLOC=libc PREFIX=/usr/local/redis-cluster/6381 install
[root@localhost softwares]# make MALLOC=libc PREFIX=/usr/local/redis-cluster/6382 install
3. 修改配置文件
bind 0.0.0.0 // 测试环节,任何地址都可连接
port 6381 // 修改成对应的端口号
daemonize yes // 后台运行
pidfile /var/run/redis_6381.pid // pid文件
logfile "/usr/local/redis-cluster/6381/redis_6381.log" // 日志
dir "/usr/local/redis-cluster/6381"
appendonly yes // 开启 aop 备份
appendfsync always // 每写一条 备份 一次
cluster-enabled yes // 开启 Redis Cluster
cluster-config-file nodes-6381.conf // 记录集群信息,不用手动维护,Redis Cluster 会自动维护
cluster-node-timeout 15000 // Cluster 超时时间
cluster-require-full-coverage no // 只要有结点宕机导致16384个槽没全被覆盖,整个集群就全部停止服务,所以一定要改为no
4. 启动redis
[root@Node201 6381]# cd /usr/local/redis-cluster/6381
[root@Node201 6381]# bin/redis-server redis.conf 分别在每台机器上启动两个。
复制配置文件到其他机器:
[root@Node201 6381]# scp /usr/local/redis-cluster/6381/redis.conf 192.168.2.202:/usr/local/redis-cluster/6381/.
[root@Node201 6381]# scp /usr/local/redis-cluster/6381/redis.conf 192.168.2.203:/usr/local/redis-cluster/6381/. [root@Node201 6382]# scp /usr/local/redis-cluster/6382/redis.conf 192.168.2.202:/usr/local/redis-cluster/6382/.
[root@Node201 6382]# scp /usr/local/redis-cluster/6382/redis.conf 192.168.2.203:/usr/local/redis-cluster/6382/.
5. 创建集群
[root@Node201 src]# /home/softwares/redis-5.0.3/src/redis-trib.rb create --replicas 1 192.168.2.201:6381 192.168.2.201:6382 192.168.2.202:6381 192.168.2.202:6382 192.168.2.203:6381 192.168.2.203:6382
报错:
因为新版本不用ruby了,改用c语言实现了。所以只能用redis-cli 了。所以不用再安装ruby了。
[root@Node201 src]# redis-cli --cluster create 192.168.2.201:6381 192.168.2.201:6382 192.168.2.202:6381 192.168.2.202:6382 192.168.2.203:6381 192.168.2.203:6382 --cluster-replicas 1
出现下面的截图说明创建成功了。
6.进入集群
[root@Node201 6381]# bin/redis-cli -c -h 192.168.2.201 -p 6381
7. 高可用验证
注:当某个master shutdown后,他的slot会自动分给其他活着的master,并且从slave中选举出新的master。