centos7下面搭建redis5.0哨兵和主从复制集群模式
本文介绍的都是在一台虚拟机上搭建的,真实物理机下面可以类推
1.下载redis5.0
wget http://download.redis.io/releases/redis-5.0.2.tar.gz
cd /usr/local/
mkdir redis
tar -zxvf redis-5.0.2.tar.gz
2.安装redis5.0
cd redis-5.0.2/
make && make install
安装成功之后,默认在/usr/local/bin/目录下有redis相关服务程序
3.搭建redis主从复制集群
cd /usr/local/
mkdir sentinel msredis
cd msredis
mkdir 7000 7001 7002
sentinel用来放哨兵的集群的配置,msredis用来放redis主从服务器的配置
cd 7000
redis的主服务器 redis_7000.conf
master:
port 7000
daemonize yes
#protected-mode no
appendonly yes
masterauth "123456"
bind 0.0.0.0
requirepass "123456"
执行:cd 7001
redis的从服务器 redis_7001.conf
slave:
port 7001
slaveof 192.168.110.130 7000
daemonize yes
appendonly yes
masterauth "123456"
bind 0.0.0.0
requirepass "123456"
执行:cd 7001
redis的从服务器 redis_7002.conf
slave:
port 7002
slaveof 192.168.110.130 7000
daemonize yes
appendonly yes
masterauth "123456"
bind 0.0.0.0
requirepass "123456"
5.搭建哨兵集群:
cd sentinel
mkdir s1 s2 s3
cd s1
哨兵配置文件:
vi sentinel_6000.conf
sentinel monitor mymaster 192.168.110.130 7000 2
sentinel down-after-milliseconds mymaster 6000
sentinel parallel-syncs mymaster 1
daemonize yes
port 6000 #端口
dir "/usr/local/sentinel/s1"
其他sentinel_6001.conf和sentinel_6002.conf只需要修改port 6001 port 6002即可
6.启动redis和sentinel
先复制redis-server启动服务程序到msredis下面
cp /usr/local/bin/redis-server /usr/local/msredis/
cd 7000
启动主服务器:
../redis-server redis_7000.conf
依次启动7001和7002
同样的sentinel
cp /usr/local/bin/redis-sentinel /usr/local/sentinel/
cd s1
../redis-sentinel sentinel_6000.conf
7.故障转移模拟
sentinel 是按投票模式决定是否主动切换主从的,上面哨兵配置的2个哨兵
认为主服务器为主观下线的情况下,才决定标记主服务器为客观下线,才会
转义到另外一个从服务为新的主服务器。
让7000的redis主服务挂掉
ps -ef|grep redis
kill -9 11193
观看哨兵服务器的日志:
这里当第2个或以上的哨兵发现192.168.110.130:7000的主服务器为主观下线时,会被标记为客观下线,然后把主服务器的配置转义到某一个从服务器上面,并通过相关命令修改从服务的配置文件,从服务就变成新的master,拥有读写权限,有兴趣的同学可以自己多尝试下。