一构建:
1.两台centos7服务器:
192.168.1.100和192.168.1.115
2. 安装必须的软件包:
yum install gcc gcc-c++ kernel-devel automake autoconf libtool make wget tcl vim ruby rubygems unzip git -y
3. 下载redis源码包并安装:
wget http://download.redis.io/releases/redis-3.2.3.tar.gz
tar -zxvf redis-3.2.3.tar.gz
cd redis-3.2.3
make && make install
4.将redis目录转移至/usr/loacl/redis下:
(1).创建redis目录:
cd /usr/local
mkdir -p redis/bin
mkdir -p redis/etc
(2) .将源码包下面的reids.conf 复制到新建的etc下,将源码包下面的src目录中的redis-server redis-cli redis-check-aof redis-benchmark mkreleasehdr.sh 文件复制到新建的bin目录下:
cd /usr/local/redis
cp /root/redis-3.2.3/redis.conf etc/
cd /root/redis-3.2.3/src/
cp redis-server redis-cli redis-check-aof redis-benchmark mkreleasehdr.sh /usr/local/redis/bin/
5.配置redis主从复制:
(1) .在主机192.168.1.100(主)的配置:
(2).在主机192.168.1.115(从)上的配置:
至此,主从配置完成,进入/usr/local/redis启动两台实例:
bin/redis-server etc/redis.conf
此时的redis启动直接占据控制台,我们可以将其修改为后台启动,ctrl+c关闭redis,编辑etc目录下的redis.cnf文件将daemonize no改为daemonize yes,重新启动即可
使用命令查看主从复制状态:
至此,主从配置完成,进入/usr/local/redis启动两台实例:
bin/redis-server etc/redis.conf
此时的redis启动直接占据控制台,我们可以将其修改为后台启动,ctrl+c关闭redis,编辑etc目录下的redis.cnf文件将daemonize no改为daemonize yes,重新启动即可
使用命令查看主从复制状态:
显示
指定在执行故障转移时,最多可以有多少个Slave同时对新的Master进行同步。这个数字设置为1,虽然完成故障转移所需的时间会变长,但是可以保证每次只有1个Slave处于不能处理命令请求的状态。
状态为:192.168.1.100为master,192.168.1.115为slave6. 使用哨兵(Sentinel)进行主从间的故障自动切换,我们在192.168.1.100上搭建sentinel(哨兵)
cd /root/redis-3.2.3/
cp sentinel.conf /usr/local/redis/etc/
cd /usr/local/redis/etc/
vim sentinel.conf
(1).路径:
(2).指定sentinel去监视一个名为mymaster的Master,Master的IP地址为192.168.1.100
(3).如果redis有登陆密码的话必须配置这项参数:
(4)连接192.168.1.100的redis的密码
(5).指定Sentinel判定Master断线的时间。(单位为毫秒,判定为主观下线SDOWN)
(6).如果在该时间(ms)内未能完成failover(即故障时master/slave自动切换
)操作,则认为该failover失败。
指定在执行故障转移时,最多可以有多少个Slave同时对新的Master进行同步。这个数字设置为1,虽然完成故障转移所需的时间会变长,但是可以保证每次只有1个Slave处于不能处理命令请求的状态。
sentinel parallel-syncs my mymaster 1
我们可以看到主为192.168.1.100,从为192.168.1.115,接下来验证故障切换功能:
当我们关闭主时,master自动变为192.168.1.115,我们重新启动192.168.1.115时,发现192.168.1.115已经变为slave服务器,至此哨兵模式的故障切换完成(可在主从上同时部署哨兵)。
附加:
登陆redis的命令:
bin/redis-cli -h 192.168.1.100 -p 6379 -a pwd@123
bin/redis-cli -h 192.168.1.115 -p 6380 -a pwd@123
bin/redis-cli -h 192.168.1.100 -p 6379 -a pwd@123 info replication
bin/redis-cli -h 192.168.1.115 -p 6380 -a pwd@123 info replication