CentOS7下配置redis主从关系

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源(https://blog.****.net/justdi0209/article/details/80936621

    #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

CentOS7下配置redis主从关系

3.主机上的配置

     1)复制文件

    #mkdir –p /root/redis

    #cp redis.conf sentinel.conf /root/redis/

CentOS7下配置redis主从关系

    #cd src/

    #cp redis-cli redis-sentinel redis-server /root/redis/

CentOS7下配置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"

CentOS7下配置redis主从关系

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

CentOS7下配置redis主从关系

     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"

CentOS7下配置redis主从关系

    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"

CentOS7下配置redis主从关系

5.启动主机

    #./redis-server ./redis.conf

    #./redis-sentinel ./sentinel.conf

    #./redis-cli

CentOS7下配置redis主从关系

6.启动从机

    #./redis-server ./redis.conf

    #./redis-sentinel ./sentinel.conf

    #./redis-server ./redis6380.conf

    #./redis-sentinel ./sentinel26380.conf

    #./redis-cli(默认启动6379端口的从机)

CentOS7下配置redis主从关系

7.测试

    主机上设置一个键值对

    #set a 1

CentOS7下配置redis主从关系

    6379端口从机获取

    #get a

CentOS7下配置redis主从关系

    测试6380端口从机

    #quit

    #./redis-cli -p 6380

    #get a

CentOS7下配置redis主从关系

    从机是只读的

    #set b 2

CentOS7下配置redis主从关系

8.测试主从切换

     1)模拟主机挂了,关闭master

    #quit

    #ps -ef | grep redis

    #kill -9 13951

CentOS7下配置redis主从关系

     2)过几分钟后,查看先前两台从机的信息

    #info

CentOS7下配置redis主从关系

CentOS7下配置redis主从关系

    发现6380端口的从机role是slave,切换到6379端口的从机,查看role是master

    #quit

    #./redis-cli

    #info

CentOS7下配置redis主从关系

CentOS7下配置redis主从关系

    再启动先前的master,查看信息,role是slave

    #./redis-server ./redis.conf

    #./redis-sentinel ./sentinel.conf

    #./redis-cli

CentOS7下配置redis主从关系

CentOS7下配置redis主从关系

    redis主从配置成功