Redis 哨兵模式简介

        哨兵模式最基础的节点是三个节点,即通常所说的一主二从三哨兵

        哨兵模式节点数要求:最少是三台,或者三台以上的基数数量,比如:5台、7台之类的

        哨兵模式的核心是解决 Redis 主从复制架构中的故障自动切换问题。它由一组 Sentinel 进程组成,主要实现三个功能:监控、通知和自动故障转移。

        哨兵模式跟cluster最大的区别是,哨兵模式没有分片,一主二从上的数据保存的都是一模一样的。master 节点上的数据会通过异步的方式同步给两台从节点。主节点读写,从节点只读权限。

Redis 哨兵模式架构图

        

Redis 哨兵模式搭建

        三台服务器搭建redis哨兵集群,(1主2从3哨兵)

               主服务器(master):192.168.1.12

               从服务器(slave):   192.168.1.91

               从服务器(slave):   192.168.1.92

        下载redis:

下载链接:https://download.redis.io/releases/

        安装依赖包:

cd /data/app/pats_opts
wget https://download.redis.io/releases/redis-6.2.0.tar.gz
tar -zxvf redis-6.2.0.tar.gz 
cd redis-6.2.0
make MALLOC=libc BUILD_TLS=yes 

        主redis 配置

主redis 配置,先备份原来的配置文件
	命令:cp redis.conf  redis.conf.bak

修改配置文件:
    bind 0.0.0.0 
    protected-mode no
    requirepass 123456    #123456为密码,可自行定义
    masterauth 123456    #123456 为密码,可自行定义
    appendonly yes

        两个从redis 配置:        

#两个从库配置前先备份配置文件
    cp redis.conf  redis.conf.bak

#从库的基础配置跟主库一样配置即可

#添加主库同步配置、在配置文件最后一行加上:

    slaveof 192.168.1.12 6379

        配置redis 哨兵

#三台服务器的哨兵模式的配置文件都是一样配置

#主服务哨兵配置,先备份配置文件
    cp sentinel.conf  sentinel.conf.bak

#配置文件修改
    bind 0.0.0.0
    protected-mode no
    daemonize yes
    sentinel monitor mymaster 192.168.1.12 6379 2  #这边的ip是主库ip,2指三个哨兵至少需要Sentinel 同时认为 Master 挂了,判断为客观下线,触发故障转移。
    sentinel auth-pass mymaster 123456             #123456 为密码,可自定定义

        服务启动

#redis 服务启动,依次启动三台reidis
    cd /data/app/pats_opts/redis-6.2.0
     ./src/redis-server  redis.conf
    
#redis sentinel 服务启动
    cd /data/app/pats_opts/redis-6.2.0
    ./src/redis-sentinel sentinel.conf

#查看reids & sentinel端口跟进行
#redis默认端口:6379,sentinel默认端口:26379
    ps -ef|grep redis
    netstat -an|grep 6379

        哨兵模式测试     

                主库登录,查看信息配置

#redis cli 登录查看配置情况

#主库登录:
./src/redis-cli 
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.1.91,port=6379,state=online,offset=519931,lag=0
slave1:ip=192.168.1.92,port=6379,state=online,offset=519792,lag=0
master_failover_state:no-failover
master_replid:bcd97d1d3282738c6b83f3c1266a6e837ac78d0f
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:519931
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:519931

                    从库登录,查看信息配置   

        

        主从库测试:在主库上设置key:value 值,在从库能查询到

                测试从库只有只读权限

                     在两台从库上输入set name zhangsan,会报错        

        查看哨兵启动后配置信息  

cd /data/app/pats_opts/redis-6.2.0

./src/redis-cli -p 26379 INFO sentinel

        将主库停掉,查看从库是否变成主库

到这里redis 哨兵模式已经部署完成。。。。。。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐