Redis 主从模式和哨兵模式集群搭建

    redis作为当前炙手可热的NOSQL系统,本身就支持主从集群,下面我们就来动手搭建一个一主两从的redis集群。

 

1.主从模式集群的搭建

1.1 环境准备

    这里使用三台服务器,每台服务器上开启一个redis-server和redis-sentinel服务,redis-server端口为6379,redis-sentinel的端口为6800,修改默认端口是安全的第一步。

redis-server说明
10.211.55.102:8000 主
10.211.55.103:8000 从
10.211.55.104:8000 从

redis-sentinel说明
10.211.55.102:8000 主
10.211.55.103:8000 从
10.211.55.104:8000 从

1.2 搭建redis系统

    先在三台机器上安装redis,具体步骤可参考Linux下redis安装(单机版): https://blog.csdn.net/Luomingkui1109/article/details/78311328

1.2.1 安装完成后复制redis提供的默认配置文件

cp /usr/local/redis-4.0.14/redis.conf /etc/redis.conf

1.2.2 修改配置文件

cd /etc/
vim redis.conf

1.2.3 主节点10.211.55.102上的配置

port  8000         
daemonize  yes
bind  10.211.55.102
masterauth 123456
requirepass 123456
pidfile   /var/run/redis-8000.pid
logfile   /var/log/redis/redis-8000.log

1.2.4 从节点10.211.55.103,10.211.55.104 上的配置

port  8000         
daemonize  yes
bind  10.211.55.103,#10.211.55.104 
requirepass 123456
masterauth 123456
pidfile   /var/run/redis-8000.pid
logfile   /var/log/redis/redis-8000.log
slaveof  10.211.55.102 8000

注意:redis不会帮我们创建目录,所以在启动之前需要创建目录/var/log/redis

 

1.3 启动三台机器上的redis

/usr/local/redis/bin/redis-server /etc/redis.conf

 

1.4 测试

    三个redis服务启动完毕后,进入命令行,执行info replication查看当前主从配置

1.4.1 主节点配置:

Redis 主从模式和哨兵模式集群搭建_第1张图片

1.4.2 从节点配置

Redis 主从模式和哨兵模式集群搭建_第2张图片

 

 

2.哨兵模式集群的搭建(我们将哨兵模式配置在102机器中,一般在生产中哨兵模式单独一台服务器部署,避免挂点)

    模式模式只需要在主从的基础下修改如下参数:

 

2.1 将sentinel.conf复制到制定的目录

/usr/local/redis/bin/redis-server /usr/local/redis/sentinel.conf

 

2.2 修改里面的如下参数

    哨兵的启动和redis-server的启动没有关系,一个哨兵的集群可以监控多个不同的redis主从实例

2.2.1 sentinel monitor master-name ip redis-port quorum

    例:sentinel monitor mymaster 192.168.98.136 6379 1

    quorum:quorum个sentinel认为master死了时,才能真正认为该master已经不可用了。(sentinel集群中各个sentinel也有互相通信,通gossip协议)

2.2.2 sentinel auth-pass mymaster mypwd

    连接master 需要的密码

2.2.3 down-after-milliseconds

    sentinel会向master发送心跳PING来确认master是否存活,如果master在“一定时间范围”内不回应PONG 或者是回复了一个错误消息,那么这个sentinel会主观地(单方面地)认为这个master已经不可用了(subjectively down, 也简称为SDOWN)。而这个down-after-milliseconds就是用来指定这个“一定时间范围”的,单位是毫秒。

    注:哨兵不会马上进行failover主备切换,因为还要考虑其他哨兵的意见,需要超过某个数量的哨兵都认为master凉凉了,才会准备进行准备切换。在这个时候也不是马上就能failover的,还是需要需要sentinel中的大多数sentinel授权后才可以进行failover

    例如,集群中有5个sentinel,票数被设置为2,当2个sentinel认为一个master已经不可用了以后,将会触发failover,但是,进行failover的那个sentinel必须先获得至少3个sentinel的授权才可以实行failover。

如果票数被设置为5,要达到ODOWN状态,必须所有5个sentinel都主观认为master为不可用,要进行failover,那么得获得所有5个sentinel的授权。

2.2.4 protected-mode

    这个属性在哨兵设置中很容易出现坑,由于哨兵间需要进行通信进行授权,所以这个属性设置为yes时只可以进行内网访问,看服务器的情况如果主从切换失败了,可以试试把这个属性设置为no。

 

2.3 启动哨兵

/usr/local/redis/bin/redis-server /usr/local/redis/sentinel.conf --sentine &

 

2.4  第三步 测试

    关掉10.211.55.102: 中redis

    会从10.211.55.103或10.211.55.104 中选出主节点

    当10.211.55.102 中redis 启动,会加入到从节点中

你可能感兴趣的:(#,Redis)