1.架构环境
****************
我们标准化规定:三台组搭建的集群。实例端口设定从7001---7006
2.解压编译安装
****************
mkdir -p /data/app
wget http://10.69.36.241/soft/redis-3.2.8.tar.gz
tar -xzvf redis-3.2.8.tar.gz -C /data/app/
make && make install
--------------------
编译安装成功之后会多出一个bin目录,如果无法编译则执行
make MALLOC=libc && make install
3.修改每个node上创建2个redis实例的配置文件
*******************
cd /data/app/redis-3.2.8
mkdir -p conf/7001
cp redis.conf /data/app/redis-3.2.8/conf/7001
mkdir -p conf/7002
cp redis.conf /data/app/redis-3.2.8/conf/7002
vim /conf/7001/redis.conf
vim /conf/7001/redis.conf
##redis后台运行
daemonize yes
##pidfile文件对应7001~7006
pidfile /var/run/redis_7000.pid
##端口7001,7002
port 7001
#创建redis集群
./redis-trib.rb create --replicas 1 10.69.69.157:7001 10.69.69.157:7002 10.69.69.136:7003 10.69.69.136:7004 10.69.69.233:7005 10.69.69.233:7006
---------------------------
解释下, --replicas1表示自动为每一个master节点分配一个slave节点上面有6个节点,程序会按照一定规则生成 3个master(主)3个slave(从)
前面已经提醒过的 防火墙一定要开放监听的端口,否则会创建失败。
运行中,提示Can I set the above configuration? (type 'yes' to accept): yes //输入yes
#成功之后会提示redis的主从编排计划
M: a2b3b866839309e012723b0704aeb1121ee0d2dd 10.69.69.157:7001
slots:0-5460 (5461 slots) master
1 additional replica(s)
S: 511c9533a7eb3040ed5976c8453672c4c1bcd17e 10.69.69.136:7004
slots: (0 slots) slave
replicates a2b3b866839309e012723b0704aeb1121ee0d2dd
M: 47a36a823a9dfeef12fb022561480f5cf432d50e 10.69.69.233:7005
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: 812bc02ebc7c28309c438eebf7644682ab8f351c 10.69.69.233:7006
slots: (0 slots) slave
replicates 47a36a823a9dfeef12fb022561480f5cf432d50e
S: 9415427c30e029437b6a57353ebe8a75d5a64aa6 10.69.69.157:7002
slots: (0 slots) slave
replicates cde01b6ff85bed3cf0e67b59c4bed4179ef90637
M: cde01b6ff85bed3cf0e67b59c4bed4179ef90637 10.69.69.136:7003
slots:5461-10922 (5462 slots) master
1 additional replica(s)
#仔细查看主从编排计划,我们不允许掌管同一范围slot主从节点在一台机器上,所以需要根据情况手动指定主从
1-------4
3-------6
5-------2
#设置10.69.69.233:7006为10.69.69.136:7003的从
10.69.69.233:7006> cluster replicate cde01b6ff85bed3cf0e67b59c4bed4179ef90637
#设置10.69.69.233:7006为10.69.69.233:7005的从
10.69.69.157:7002> cluster replicate 47a36a823a9dfeef12fb022561480f5cf432d50e
OK
最后保存配置到硬盘
172.20.0.81:7006> cluster saveconfig
OK
搭建完成
7.测试Redis集群
*******************
进入命令窗口,直接 set hello howareyou
直接根据hash匹配切换到相应的slot的节点上。
可以测试故障转移
8.常用命令
******************
#检查集群slot情况
redis-trib.rb check 10.69.69.157:7001
#修复集群
redis-trib.rb fix 10.69.69.157:7001
#查看集群状态信息
redis-trib.rb info 10.69.69.157:7001
#查看集群节点信息
cluster info、nodes
#清空集群配置
cluster reset
#删除集群步骤(目录根据自己具体设置)
rm -rf /etc/redis/nodes.conf
rm -rf /opt/redis/dump.rdb
rm -rf /opt/redis/appendonly.aof
cluster reset
重新启动Redis集群
#cluster meet
命令不要乱用,这个是手动指定Redis集群主节点,指定了几个就会出现几个主