1.实验环境:
使用任意一台redis 主机
2.部署高可用
1)搭建环境
[root@server2 redis]# /etc/init.d/redis_6379 stop
cd /usr/local/ mkdir cluster ##建立集群目录
[root@server2 local]# cd cluster/
[root@server2 cluster]# pwd
/usr/local/cluster
[root@server2 cluster]# mkdir 700{1..6}
[root@server2 cluster]# ll
total 24
drwxr-xr-x 2 root root 4096 Oct 9 11:02 7001
drwxr-xr-x 2 root root 4096 Oct 9 11:02 7002
drwxr-xr-x 2 root root 4096 Oct 9 11:02 7003
drwxr-xr-x 2 root root 4096 Oct 9 11:02 7004
drwxr-xr-x 2 root root 4096 Oct 9 11:02 7005
drwxr-xr-x 2 root root 4096 Oct 9 11:02 7006
[root@server2 cluster]# cd 7001/
[root@server2 7001]# vim redis.conf
[root@server2 ~]# cat /usr/local/cluster/7001/redis.conf
port 7001
cluster-enabled yes #打开集群设备
cluster-config-file nodes.conf
cluster-node-timeout 5000 #延时时间
appendonly yes
daemonize yes
pidfile /usr/local/cluster/7001/redis.pid ##pid文件存放目录
logfile /usr/local/cluster/7001/redis.log ##日志存放目录
[root@server2 7001]# redis-server redis.conf ###打开集群服务
[root@server2 cluster]# cp 7001/redis.conf 7002/
[root@server2 cluster]# cp 7001/redis.conf 7003/
[root@server2 cluster]# cp 7001/redis.conf 7004/
[root@server2 cluster]# cp 7001/redis.conf 7005/
[root@server2 cluster]# cp 7001/redis.conf 7006/
[root@server2 cluster]# cd 7002/
[root@server2 7002]# vim redis.conf ###将文件中的端口号改为7002和存放目录的更改
redis-server redis.conf ###打开集群的redis
cd ..
cd 7003/ vim redis.conf ###将文件中的端口号改为7003和存放目录的更改
redis-server redis.conf ###打开集群的redis
cd ..
cd 7004/ vim redis.conf ###将文件中的端口号改为7004和存放目录的更改
redis-server redis.conf ###打开集群的redis
cd ..
cd 7005/
vim redis.conf ###将文件中的端口号改为7005和存放目录的更改
redis-server redis.conf ###打开集群的redis
cd ..
cd 7006/ vim redis.conf ###将文件中的端口号改为7006和存放目录的更改
redis-server redis.conf ###打开集群的redis
ps ax ##查看进程是否都打开了
netstat -antlp ##查看端口号是否开启
[root@server2 ~]# cd redis-4.0.1
[root@server2 redis-4.0.1]# cd src/
[root@server2 src]# cp redis-trib.rb /usr/local/bin/
[root@server2 src]# yum install -y ruby
[root@server2 ~]# yum install -y rubygems-1.3.7-5.el6.noarch.rpm
[root@server2 ~]# rpm -Uvh ruby-2.2.3-1.el6.x86_64.rpm
[root@server2 ~]# yum install -y ruby-2.2.3-1.el6.x86_64.rpm libyaml-0.1.3-4.el6_6.x86_64.rpm
[root@server2 ~]# gem install --local redis-4.0.1.gem
2)创建集群
[root@server2 ~]# redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
[root@server2 ~]# redis-cli -c -p 7001
127.0.0.1:7001> set name linux
-> Redirected to slot [5798] located at 127.0.0.1:7002
OK
127.0.0.1:7002>
[root@server2 ~]# redis-cli -c -p 7006
127.0.0.1:7006> set name kb
-> Redirected to slot [5798] located at 127.0.0.1:7002
OK
127.0.0.1:7002> get name
"kb"
127.0.0.1:7002>
redis-cli -c -p 7001
登录,set name linux 写入内容,会提示写入内容传到2上
redis-cli -c -p 7002
输入info,发现2是master,他的slave是6
3)测试
停掉master 2
[root@server2 ~]# redis-cli -c -p 7002
127.0.0.1:7002> SHUTDOWN
not connected>
redis-trib.rb check 127.0.0.1:7001 ##查看集群的状态
可以查看之前的内容
[root@server2 ~]# redis-cli -c -p 7001
127.0.0.1:7001> get name
-> Redirected to slot [5798] located at 127.0.0.1:7005
"kb"
127.0.0.1:7005>
再关掉一个master
[root@server2 ~]# redis-cli -c -p 7005
127.0.0.1:7005> SHUTDOWN
not connected>
查看信息
关闭掉两个master后,集群的功能会破坏
[root@server2 ~]# redis-cli -c -p 7001
127.0.0.1:7001> get name
(error) CLUSTERDOWN The cluster is down
127.0.0.1:7001>
4)恢复关闭的两个节点
[root@server2 ~]# cd /usr/local/cluster/
[root@server2 cluster]# ls
7001 7002 7003 7004 7005 7006
[root@server2 cluster]# cd 7002
[root@server2 7002]# redis-server redis.conf
1292:C 09 Oct 11:40:46.513 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1292:C 09 Oct 11:40:46.513 # Redis version=4.0.1, bits=64, commit=00000000, modified=0, pid=1292, just started
1292:C 09 Oct 11:40:46.513 # Configuration loaded
[root@server2 7002]# cd ..
[root@server2 cluster]# cd 7005
[root@server2 7005]# redis-server redis.conf
1298:C 09 Oct 11:41:15.609 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1298:C 09 Oct 11:41:15.609 # Redis version=4.0.1, bits=64, commit=00000000, modified=0, pid=1298, just started
1298:C 09 Oct 11:41:15.609 # Configuration loaded
高可用搭建成功