Redis哨兵模式搭建(一主一从,两哨兵)

之前公司让我负责冗余环境的搭建,平时接触linux很少,也没搭建过各种环境集群,在此记录自己的搭建的过程和遇到的问题,redis刚开始版本选用的是5.x.x的,搭建起来后,不知道什么问题,主节点切换到从节点可以,但是再次切换切不回来,这个原因没找到是什么导致的,于是换了一个版本,采用4.0.0的进行搭建,以下是搭建的步骤:

1.下载安装redis

  1. 官网下载:http://download.redis.io/releases/ (这里我的是4.0.0)
  2. 引入安装包 进行安装
mkdir /usr/redis  # 创建 Redis 目录
cd /usr/redis  # 进入目录
# 将 Redis 安装包传输到该目录下 #
tar -zxvf redis-4.0.0.tar.gz  # 解压安装包
cd /usr/redis/redis-4.0.0  # 进入解压目录
make && make install  # 安装命令
redis-server -v  # 检查安装结果

2.服务器一(假设IP 127.0.0.1)

redis为主节点 master
redis.conf文件需要修改的内容

	bind 0.0.0.0
 	port 6379
    #Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
	daemonize yes
	pidfile /usr/redis/redis.pid
	logfile "/usr/redis/redis-4.0.0/logs/redis.log"  需要创建logs文件夹 
	dir /usr/redis/data   需要创建data文件夹 注意 : 文件夹不创建会启动不起来					
	masterauth 1234  连接主节点的密码  两台服务器的密码都设为一样
	requirepass 1234  登录redis的密码  两台服务器的密码都设为一样

3.服务器二(假设IP 127.0.0.2)

redis为从节点 slaveof 5.0以后的版本为(replicaof)

	bind 0.0.0.0
	port 6379
	#Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
	daemonize yes
	pidfile /usr/redis/redis.pid
	logfile "/usr/redis/redis-4.0.0/logs/redis.log"  需要创建logs文件夹 
	dir /usr/redis/data  需要创建data文件夹 注意 : 文件夹不创建会启动不起来		
	masterauth 1234 连接主节点的密码  两台服务器的密码都设为一样
	requirepass 1234 登录redis的密码 两台服务器的密码都设为一样
	slaveof 127.0.0.1 6379	代表这个节点为主节点上的从节点

4…Sentinel(哨兵配置) 哨兵是通用的配置

	port 26379  端口可以修改
	daemonize yes
	pidfile /usr/redis/redis-sentinel.pid
	logfile "/usr/redis/redis-4.0.0/logs/sentinel.log"
	dir /usr/redis/sentinel-data
     # sentinel monitor <mastername> <masterIP> <masterPort> <quorum> 
     // Sentine监听的maste地址,第一个参数是给master起的名字,第二个参数为master IP,第三个为master端口,第四个为当该master挂了的时候,若想将该master判为失效,在Sentine集群中必须至少2个Sentine同意才行,只要该数量不达标,则就不会发生故障迁移。也就是说只要有2个sentinel认为master下线,就认为该master客观下线,启动failover并选举产生新的master。通常最后一个参数不能多于启动的sentinel实例数。	
	 sentinel monitor mymaster 127.0.0.1 6379 1   //建议为1 
        
      //设置sentinel连接的master和slave的密码,这个需要和redis.conf文件中设置的密码一样
	 sentinel auth-pass mymaster 1234
        
	 // 表示master被当前sentinel实例认定为失效的间隔时间。master在多长时间内一直没有给Sentine返回有效信息,则认定该master主观下线。也就是说如果多久没联系上redis-servevr,认为这个redis-server进入到失效(SDOWN)状态。 默认为 30000   改为10秒快一点
	 sentinel down-after-milliseconds mymaster 10000
        
     //这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态
	 # sentinel parallel-syncs <master-name> <numslaves> 
	 sentinel parallel-syncs mymaster 1

5.redis启动

cd /usr/redis/redis-4.0.0/src
./redis-server /usr/redis/redis-4.0.0/redis.conf   指定配置文件
lsof -i: 6379   lsof -i:端口   查看端口使用情况
# redis客户端  -h 服务器的ip -p 连接的端口  -a redis的密码
redis-cli -h 127.0.0.1 -p 6379 -a 1234

6.Sentinel(哨兵启动)

./redis-sentinel /usr/redis/redis-4.0.0/sentinel.conf
#查看哨兵状态
redis-cli -p 26379 info sentinel

7.测试

  1. 数据同步问题
  2. 从节点仅有都的权限,没有写的权限
  3. 主从节点切换问题

如有不正确的地方欢迎指正,此文章用来记录,欢迎大家讨论

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis哨兵模式是一种用于高可用性部署的Redis架构。它通过监控Redis节点的状态,并在主节点故障时自动将其中一个从节点升级为新的主节点,以保证系统的可用性。 要搭建Redis哨兵模式,首先需要准备一组Redis实例,包括一个主节点和多个从节点。然后按照以下步骤进行配置: 1. 配置主节点:在主节点的配置文件(redis.conf)中,设置`port`、`bind`和`daemonize`等参数,并打开`requirepass`选项设置密码保护。重要的是要启用`masterauth`选项并设置与`requirepass`相同的密码。 2. 配置从节点:在每个从节点的配置文件(redis.conf)中,设置`port`、`bind`和`daemonize`等参数,并在配置文件中添加`slaveof`选项,指定主节点的IP地址和端口号。另外,也需要设置与主节点相同的密码保护。 3. 配置哨兵节点:在一个或多个独立的服务器上,分别配置哨兵节点的配置文件(sentinel.conf)。设置`port`、`bind`、`daemonize`以及至少一个监控的主节点的信息,包括IP地址、端口号和密码。例如,使用`sentinel monitor <master-name> <ip> <port> <quorum>`命令添加监控的主节点。 4. 启动Redis实例:依次启动主节点、从节点哨兵节点Redis实例。可以使用`redis-server`命令指定配置文件路径来启动实例。 5. 验证哨兵模式:通过`redis-cli`连接到任意一个哨兵节点,并使用`sentinel master <master-name>`命令查看主节点的状态信息。可以使用`sentinel slaves <master-name>`命令查看从节点的状态。 在上述步骤完成后,Redis哨兵模式搭建成功了。如果主节点发生故障,哨兵节点会自动将一个从节点升级为新的主节点,并通知其他从节点更新配置。这样可以保证系统的高可用性和容错性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值