Ubuntu18下Redis哨兵模式部署踩坑笔记

本文记录了在Ubuntu18环境下,使用Redis哨兵模式搭建集群过程中遇到的问题及解决方案。包括安装Redis和Sentinel、配置静态IP、克隆虚拟机时的注意事项、启动多台虚拟机的困扰以及Sentinel配置失败的原因分析。最后成功解决 Sentinel无法发现其他实例的问题,关键在于每台服务器的sentinel.myid需保持唯一。
摘要由CSDN通过智能技术生成

Ubuntu18下Redis哨兵模式部署踩坑笔记

最近因工作原因需要搭建一套Redis的集群环境,并需要采取哨兵模式。网上这类文章很多,大部分文章也是正确的,所以通常部署起来也比较方便。但我在虚拟机上部署的时候却因为各种小坑,导致了我花了一天时间才完全部署成功。现把各种遇到的坑描述一下,并记录我的解决心得。

Ubuntu18下安装Redis和Sentinel

这个过程是比较简单的,两句话:

sudo apt-get install redis-server
sudo apt-get install redis-sentinel

配置虚拟机静态ip

因为我打算采用的是虚拟机集群部署,所以每台虚拟机需要有固定的ip。虚拟机设置静态ip也比较简单,直接看这篇文章即可:Ubuntu 虚拟机固定IP设置心得记录

克隆多台虚拟机

VMWare下,创建多台虚拟机的最方便方式就是使用软件自带的克隆功能。克隆完成后很容易想到的一点就是进去把每台虚拟机的ip改成不同的固定ip。

当然还有一个地方需要修改,而这正是坑了我许久的地方,先卖个关子,后面再说。

同时启动多台虚拟机

我台式机的系统环境是Win10 1909版本,使用的是VMWare Work Station Pro 15

启动多台虚拟机的时候发现一个很坑爹的事情,就是同时只能有1或2台虚拟机能启动,其他虚拟机启动时会卡死,而且还关不掉!

这个时候没有其他办法,只能重启电脑,但是重启之后还是打不开虚拟机!因为虚拟机异常退出,重新打开会有问题,需要进行如下操作:虚拟机异常退出后无法再次启动的解决办法

最终解决方案:升级VMWare,换成VMWare Work Station Pro 16。。。

Redis哨兵模式配置

这篇文章的介绍非常详细,而且可行,我主要参照的也是这篇文章,只不过文章中有几个点没有说清楚,我补充一下:Ubuntu16.04 安装Redis哨兵模式

redis.conf几个配置项的解释:

  • bind:当前虚拟机的固定ip
  • requirepass:登录当前服务器redis的密码
  • slaveof:作为哪台master服务器的从服务器,所以只有slave的服务器需要配置这项,指出master服务器的ip和port
  • masterauth:slave服务器登录master服务器用的密码,即master服务器上redis的登录密码

redis-sentinel.conf几个配置项的解释:

  • bind:表示sentinel绑定的ip。文章中这个配置项注释掉了,在旧版redis下是没问题的。对于较新版本的redis,注释掉该项后在后续的操作中会遇到sentinel已开启自保护,无法远程访问的提示。新版新增了protected-mode no的配置项,如果想开启远程访问,bindprotected-mode no的配置项必须开启任意一个
  • sentinel monitor [name]:这里要配置的是redis的master服务所在服务器的ip和port,所以每台服务器这里的sentinel配置都一样
  • sentinel myid:每个sentinel的id值,每台服务器唯一
  • sentinel auth-pass:redis的访问密码

Sentinel部署失败

按照上述文章的介绍进行配置和验证会发现,Redis的主从服务一致可以实现,但是sentinel却部署失败了,即在任意一台服务器下看不到其他的sentinel,即输入:sentinel sentinels mymaster会得到empty set

还记得之前卖的那个关子吗?我们克隆虚拟机的时候实际上每台虚拟机的sentinel.conf文件是完全一致的!如果我们不采用克隆的方式,而是在每台虚拟机都采用apt-get install redis-sentinel,那么得到的配置文件中,sentinel myid值是各不相同的!但因为我们是克隆的,所以该项完全一致!所以一个sentinel下无法看到其他sentinel!

知道了原因,解决方案很简单了,随便改改每台虚拟机上sentinel.conf文件的sentinel myid值,保证每台唯一即可。

现在能看到其他的sentinel信息了吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值