1.新建的两台虚拟机,进行配置,1主2从,因步骤关联,所以写的命令都是用的相对路径。
主机与从机
主机 10.0.0.7 master
从机 10.0.0.8 slave
2.安装redis,两台虚拟机上的操作一样
1)关闭防火墙和selinux
关闭selinux、防火墙
#sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#setenforce 0
#systemctl stop firewalld
#systemctl disable firewalld
2)安装依赖
制作本地yum源(CentOS7制作本地yum源-图文_JustDI-CM的博客-CSDN博客)
#yum install –y gcc gcc-c++ make vim
3)上传、解压安装包,并进入解压后的目录,安装redis
#mkdir -p /root/soft
#cd /root/soft
#tar -xzvf redis-4.0.2.tar.gz
#cd redis-4.0.2
#make
3.主机上的配置
1)复制文件
#mkdir –p /root/redis
#cp redis.conf sentinel.conf /root/redis/
#cd src/
#cp redis-cli redis-sentinel redis-server /root/redis/
2)修改文件
#cd /root/redis/
#vim redis.conf
修改内容如下:
将bind 127.0.0.1这一行注释掉
将protected-mode yes改为protected-mode no
将daemonize no改为daemonize yes
将logfile ""改为logfile"/var/log/redis.log"
#vim sentinel.conf
将sentinel monitor mymaster 127.0.0.1 6379 2改为sentinel monitor mymaster 10.0.0.7 6379 2
添加以下几行:
daemonize yes
protected-mode no
logfile "/var/log/sentinel.log"
4.从机上的配置
1)复制文件
#mkdir –p /root/redis
#cp redis.conf sentinel.conf /root/redis/
#cd src/
#cp redis-cli redis-sentinel redis-server /root/redis/
#cd /root/redis/
2)修改redis.conf
#vim redis.conf
修改内容如下:
将bind 127.0.0.1注释掉
将protected-mode yes改为protected-mode no
将daemonize no改为daemonize yes
将logfile ""改为logfile "/var/log/redis.log"
添加一行slaveof 10.0.0.7 6379
3)修改sentinel.conf文件
# vim sentinel.conf
修改内容如下:
将sentinel monitor mymaster 127.0.0.1 6379 2修改为sentinel monitor mymaster 10.0.0.7 6379 2
添加以下几行:
daemonize yes
protected-mode no
logfile "/var/log/sentinel.log"
4)复制另一个从机的文件,并修改
#cp redis.conf redis6380.conf
#vim redis6380.conf
修改内容如下:
将port 6379改为port 6380
将pidfile /var/run/redis_6379.pid改为pidfile /var/run/redis_6380.pid
将logfile "/var/log/redis.log"改为logfile "/var/log/redis6380.log"
#cp sentinel.conf sentinel26380.conf
#vim sentinel26380.conf
修改内容如下:
将port 26379改为port 26380
将logfile "/var/log/sentinel.log"改为logfile "/var/log/sentinel26380.log"
5.启动主机
#./redis-server ./redis.conf
#./redis-sentinel ./sentinel.conf
#./redis-cli
6.启动从机
#./redis-server ./redis.conf
#./redis-sentinel ./sentinel.conf
#./redis-server ./redis6380.conf
#./redis-sentinel ./sentinel26380.conf
#./redis-cli(默认启动6379端口的从机)
7.测试
主机上设置一个键值对
#set a 1
6379端口从机获取
#get a
测试6380端口从机
#quit
#./redis-cli -p 6380
#get a
从机是只读的
#set b 2
8.测试主从切换
1)模拟主机挂了,关闭master
#quit
#ps -ef | grep redis
#kill -9 13951
2)过几分钟后,查看先前两台从机的信息
#info
发现6380端口的从机role是slave,切换到6379端口的从机,查看role是master
#quit
#./redis-cli
#info
再启动先前的master,查看信息,role是slave
#./redis-server ./redis.conf
#./redis-sentinel ./sentinel.conf
#./redis-cli
redis主从配置成功