redis的集群搭建(主从、哨兵高可用)

1. 搭建redis主从复制集群

操作系统:centos7
redis版本:5.0.3
服务器:主 192.168.137.160
服务器:从 192.168.137.161
redis存放目录: /opt/redis

在两台服务器之间做相同的以下操作:《《《《《《《《《《《《《《《《《《《《《
gcc离线安装参考gcc离线安装

安装gcc:  yum install gcc
安装c++库:yum install glibc-headers        yum   install gcc-c++
解压:	tar -zxvf redis-5.0.3.tar.gz
进入redis目录:cd redis-5.0.3/
编译:make

此时,如果报如下错误,则使用
在这里插入图片描述

make MALLOC=libc
修改配置文件 vim redis.conf  (主)

(1)注释 bind 127.0.0.1,取消绑定本机IP
在这里插入图片描述
(2)取消保护模式 protected-mode yes 改为 protected-mode no
在这里插入图片描述
(3)守护进程:daemonize no 改为 daemonize yes在这里插入图片描述
以上操作为两台服务器都相同的操作》》》》》》》》》》》》》》》》》》》》》》》》
(4)除上述操作外,修改从服务器的redis配置文件
在此处加上:replicaof 192.168.137.160 6379 主服务器ip和端口配置,如果有多台从服务器,则也是如下在从服务器中配主服务器的ip和端口。
在这里插入图片描述
(5) 启动

redis  redis-server ../redis.conf 

使用netstat -ntlp命令查看是否启动,如下图所示
在这里插入图片描述
测试:,进入redis客户端, 在主服务器中
添加一个key
在这里插入图片描述
从服务器也可以看到
在这里插入图片描述
至此,redis主从复制模式搭建完成;

2、 使用redis哨兵实现高可用(1主2从3哨兵)

(1)服务器环境配置,基于1主从的配置

角色IP端口别名
master192.168.137.1606379主节点
slave-A192.168.137.1616379从节点
slave-B192.168.137.1626379从节点
sentinel-A192.168.137.160
sentinel-B192.168.137.161
sentinel-C192.168.137.162

(2)修改哨兵配置文件

打开配置文件 vim sentinel.conf

修改主节点ip,之后保存,其他几台也如此
在这里插入图片描述
分别启动redis,使用主从复制的方式测试是否启动成功,成功之后在启动哨兵:

redis-sentinel ../sentinel.conf --sentinel

在这里插入图片描述
测试redis哨兵高可用
查看进程 netstat -ntlp kill -9 进程号,我们将主节点退出,查看主节点是否;切换即可

3、哨兵配置文件

sentinel monitor <master-name> <ip> <redis-port> <quorum>
告诉sentinel去监听地址为ip:port的一个master,这里的master-name可以自定义,quorum是一个数字,指明当有多少个sentinel认为一个master失效时,master才算真正失效

sentinel auth-pass <master-name> <password>
设置连接master和slave时的密码,注意的是sentinel不能分别为master和slave设置不同的密码,因此master和slave的密码应该设置相同。

sentinel down-after-milliseconds <master-name> <milliseconds> 
这个配置项指定了需要多少失效时间,一个master才会被这个sentinel主观地认为是不可用的。 单位是毫秒,默认为30秒

sentinel parallel-syncs <master-name> <numslaves> 
这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。

sentinel failover-timeout <master-name> <milliseconds>
failover-timeout 可以用在以下这些方面:     
1. 同一个sentinel对同一个master两次failover之间的间隔时间。   
2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。    
3.当想要取消一个正在进行的failover所需要的时间。    
4.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即
评论列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

synda@hzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值