两台redis服务器主从复制以及哨兵配置,java里redis哨兵的配置

甲方不同意在应用服务器上安装单机版redis,非得让分开服务器安装,于是有了两台redis服务器,最后做成了两台redis服务器主从复制,特此记录。

1.现在两台服务器上安装redis,由于我后来加了哨兵,所以我在第二台服务器上安装了两个redis,目录分别改名为redis-6379和redis-6380,安装的过程就不一一赘述了。
2.安装好redis之后,进行配置文件的修改
先修改主服务器
我下载了一个WinSCP,也向大家推荐一下,传文件修改文件很好用,最起码比vi某某文件去修改方便得多,百度下载即可。
回归正题
在这里插入图片描述
打开redis.conf

  1. bind 127.0.0.1 // 注释掉此行

  2. requirepass 你要设置的密码 //设置requirepass
  3. masterauth 从服务器设置的密码 //建议密码设置为一样,不容易错

修改从服务器redis.conf

前两条跟主服务器一样
然后加一条 slaveof 10.1.. 6379 //此处为你的主服务器ip和端口
记得配置密码,从服务器将两个redis中的redis.conf 的port分别修改为6379和6380。

然后先运行主服务器,在src目录下执行
redis-server …/redis.conf & //后台运行redis
然后将从服务器上的两台redis也进行启动

此时,在主服务器上执行
redis-cli -h 10.1.* (主服务器ip)
连接上redis,如果报没有密码,则输入auth password(你刚刚设置的密码)
输入 info
在这里插入图片描述
如果显示有两个slave,一般主从配置就成功了。
PS:如果Redis连接不上,很大可能时防火墙的问题,可以参考这个文章关闭防火墙
https://www.cnblogs.com/zxg-blog/p/9835263.html

现在,要思考了,如果主服务器宕机了,两个从服务器连不上主服务器,会怎么样,这里我就不演示了,你们可以自己杀掉redis进程试一下,答案是,从服务器连不上主服务器,你的java程序也会连不上redis而出错,那么现在就需要使用redis 的哨兵模式,哨兵模式可以监控主服务器是否存活,如果宕机了,会从下面的两台从服务器上选出一台成为新的主服务器(我记得哨兵数要是单数,才能成功进行投票选举新的主服务器,这也是为什么要在第二台服务器上安装两份redis的原因)

哨兵其实修改sentinel.conf就可以了

sentinel monitor mymaster 127.0.0.1 6379 1 (此处设置自己的主服务器地址)
sentinel down-after-milliseconds mymaster 10000 
sentinel failover-timeout mymaster 60000 
sentinel parallel-syncs mymaster 1
sentinel auth-pass 123456(你的redis密码)

参数说明:
sentinel monitor mymaster 127.0.0.1 6379 1 
mymaster 主节点名,可以任意起名,但必须和后面的配置保持一致。 
127.0.0.1 6379 主节点连接地址。 1 将主服务器判断为失效需要投票,这里设置至少需要 1个 Sentinel 同意。
sentinel down-after-milliseconds mymaster 10000 
设置Sentinel认为服务器已经断线所需的毫秒数。 
sentinel failover-timeout mymaster 60000 
设置failover(故障转移)的过期时间。当failover开始后,
在此时间内仍然没有触发任何failover 操作,当前 sentinel 会认为此次failover失败。
sentinel parallel-syncs mymaster 1 
设置在执行故障转移时, 多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越 小,表示同时进行同步的从服务器越少,那么完成故障转移所需的时间就越长。

复制到三份sentinel.conf中,从服务器因为两个redis在一台服务器上,所以需把port端口调为26379和26380。

然后把三份哨兵都启动了
在redis的src目录下,执行
redis-sentinel …/sentinel.conf &
哨兵就全部启动了
执行redis-cli -p 26379
输入info,显示此信息,则证明哨兵启动成功了,可以把主服务器杀掉,看等下会不会推举新的主服务器。
在这里插入图片描述

最后最后,
在springboot项目中,进行redis的配置和哨兵的配置,否则redis服务器切换主服务器之后不会告诉java客户端的。
在yml文件里进行如下配置
在这里插入图片描述

master里是上面起的master名称:mymaster。
node里写的是三个哨兵的地址,格式为:主服务器ip:26379,从服务器ip:26379,从服务器ip:26380。

redisConfig也要开启哨兵功能,这个在网上搜索一个redisConfig就行了,有很多。
这样,java客户端就可以实现哨兵切换主服务器地址时进行切换了。

PS:如果Redis连接不上,很大可能时防火墙的问题,可以参考这个文章关闭防火墙
https://www.cnblogs.com/zxg-blog/p/9835263.html

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

success321

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

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

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

打赏作者

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

抵扣说明:

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

余额充值