欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > Linux ,centos7配置redis 哨兵模式

Linux ,centos7配置redis 哨兵模式

2025/4/27 17:28:24 来源:https://blog.csdn.net/qq_62166387/article/details/147442702  浏览:    关键词:Linux ,centos7配置redis 哨兵模式

配置redis 哨兵模式

哨兵模式概述

    当我们的主服务器宕机后,要手动的去切换主从模式,这样的人工干预,费事费力,还会造成一段时间我们的服务不能使用。所有我们要使用哨兵模式来解决这一问题。

手动设置主从:

    当主服务器down 掉后 服务器不在提供写功能,需要手动将从服务器设置为主

    在从服务器上使用命令:

      slaveof on one   //从服务器关闭复制功能转为主服务器 原同步所得数据不丢失

    在其他从服务器上执行命令

      slaveof  host  port     //host 指定转为主的从服务器地址  port 指定端口号

     

哨兵是对Redis的系统的运行情况的监控,它是一个独立进程。

哨兵模式作用

监控主机Redis和从机Redis是否运行正常;

主机Redis出现故障后自动将从机转化为主机;

哨兵功能

    集群监控:负责监控主从集群中的Master和Slave进程是否正常工作。

    故障转移(failover):如果Master宕机,会自动从Slave中选举出新的Master,进行主从自动切换。

    配置中心:如果发生了故障转移,Sentinel负责通知客户端新的Master的地址。

    消息通知:如果某个redis节点有故障,那么Sentsinel会发送报警消息给系统管理员

哨兵工作原理

单个哨兵的工作原理:

哨兵模式配置 (一主两从 三哨兵)

 环境:

      主redis       地址  192.168.38.3

      从redis       地址  192.168.38.5

      从redis      地址  192.168.38.6

      哨兵sentinel    地址  192.168.38.7  (一台主机三哨兵)

 四台主机相同配置部分:

    禁用 selinux   关闭防火墙  yum 安装redis 环境    源码安装 redis

    redis 安装路径 统一  /usr/local/redis

redis 安装部署

    1,下载或者上传redis 6.2.14

       wget http://download.redis.io/releases/redis-6.2.14.tar.gz     //下载

       scp c:\redis-6.2.14.tar.gz   root@192.168.10.12:/root   //将下载到本机的源码包上传到虚拟机

2,将源码包解压到  /usr/local/   下

    tar  -zxvf  redis-6.2.14.tar.gz   -C  /usr/local/

3,将解压包改名

    cd  /usr/local

    mv  redis-6.2.14  redis

4,安装依赖

yum clean all

yum makecache fast

yum -y install gcc gcc-c++ make tcl    (utbuntu 安装 依赖关系  gcc  make  tcl)

    gcc --version      //查看gcc 版本

5,进入解压包 安装redis

    进入redis目录,输入make

      cd /usr/local/redis

      make && make install

6,启动服务

      redis-server

   

一,配置一主两从

    主 redis服务器 配置文件修改部分

    

#bind 127.0.0.1          #将bind注释掉 或 bind 0.0.0.0    75

protected-mode  no        #允许远程主机访问    94

daemonize yes         #修改服务为后台运行                      259

logfile "/usr/local/redis/log/redis.log"  #指定log日志路径        304

dir /usr/local/redis/data/redis    #这个指定rdb文件和aof文件的路径配置,要求改成不同。  456

masterauth 123    #从服务到主服务的认证密码。        486

requirepass 123    #三份文件都配置,客户端访问需要密码验证。   903

   从 redis服务器 配置文件修改

#bind 127.0.0.1        或 bind 0.0.0.0     75

protected-mode  no        #允许远程主机访问    94

daemonize yes       #修改服务为后台运行   259

logfile "/usr/local/redis/log/redis.log"    #指定log日志路径        304

dir /usr/local/redis/data/redis       #这个指定rdb文件和aof文件的路径配置,要求改成不同。  456

replicaof  192.168.38.3  6379    #从服务配置需要开启。配置主服务的ip的port。   479

masterauth 123       #从服务到主服务的认证密码。        486

requirepass 123       #三份文件都配置,客户端访问需要密码验证。   903

二,在 主redis 和 两台从服务器上创建日志文件夹和数据文件夹

      cd  /usr/local/redis

      mkdir  log   data

      mkdir  -p  data/redis

三, 分别开启三台redis 的服务

      cd  /usr/local/redis

      redis-server  redis.conf

      查看服务是否开启

      netstat  -anpt | grep  redis       //如果没有命令用yum 安装

四,配置 哨兵主机

    三哨兵需要一台主机启用三个哨兵模式 需要三个哨兵配置文件

    cd  /usr/local/redis

    mv  sentinel.conf   sentinel1.conf

    cp  sentinel1.conf   sentinel2.conf

    cp  sentinel1.conf   sentinel3.conf

    修改配置三个配置文件如下

    sentinel1.conf

bind 0.0.0.0                     #服务监听地址,用于客户端连接,默认本机地址

daemonize yes

protected-mode no        #安全保护模式

port 26379                #哨兵端口

logfile "/usr/local/redis/log/sentinel1.log""        #日志文件路径    36hang

pidfile /var/run/redis-sentinel1.pid      #pid文件路径    31 行

dir /tmp                            #工作目录    65行

sentinel monitor mymaster 192.168.38.3 6379 2      #设置要监控的master服务器,quorum表示最少有几个哨兵认可客观下线,同意故障迁移的法定票数     84行

sentinel auth-pass mymaster 123     #master设置了密码,连接master服务的密码   86行

      

    sentinel2.conf

bind 0.0.0.0                  

daemonize yes

protected-mode no       

port 26380              

logfile "/usr/local/redis/log/sentinel2.log""       

pidfile /var/run/redis-sentinel2.pid    

dir /tmp                          

sentinel monitor mymaster 192.168.38.3 6379 2    

sentinel auth-pass mymaster 123  

 

   

   sentinel3.conf

bind 0.0.0.0                  

daemonize yes

protected-mode no       

port 26381              

logfile "/usr/local/redis/log/sentinel3.log""       

pidfile /var/run/redis-sentinel3.pid    

dir /tmp                          

sentinel monitor mymaster 192.168.38.3 6379 2    

sentinel auth-pass mymaster 123

   

五, 创建存放日志的文件夹并启动三个哨兵服务

     cd  /usr/local/redis

     mkdir log

     ./src/redis-sentinel  sentinel1.conf --sentinel

     ./src/redis-sentinel  sentinel2.conf --sentinel

     ./src/redis-sentinel  sentinel3.conf --sentinel

    查看端口号

六,查看 几个哨兵的日志文件

     cat  log/sentinel1.log

     cat  log/sentinel2.log

     cat  log/sentinel3.log

七,down 掉 主redis 服务器  验证哨兵作用

     在 主 redis 服务器上关闭redis 服务 或者杀死 redis 进程

     关闭服务

   杀死进程

      cd /var/run/

      ls                    //查看redis 进程文件

      cat redis_6379.pid       //通过进程文件查看进程号

      kill -9 20504            //杀死进程

      rm  -rf redis_6379.pid     //删除进程文件

八,查看哨兵日志哪台从服务器可以写入数据 变成了主redis

    cat   log/sentinel1.log

   

    进入新的 主服务器 测试写入数据

    验证新的主服务器能写能读,从服务器只能读不能写

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词