Redis搭建主从复制和哨兵模式

本文介绍如何在三台服务器上配置Redis的主从复制及哨兵集群,实现数据同步与故障自动转移。包括关闭保护模式、设置启动方式、配置密码、指定主从关系等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主从复制结构

目录

一、搭建环境

 二、设置主从复制,配置192.168.213.128(主)redis.conf文件

三、设置主从复制,配置192.168.213.130(从)redis.conf文件

四、设置主从复制,配置192.168.213.133(从)redis.conf文件

五、主从复制,依次启动主从服务,主从数据同步,如图所示

 六、依次设置、主从服务哨兵配置,设置sentinel.conf文件

 七、依次启动哨兵服务,192.168.213.128(主)192.168.213.130(从),192.168.213.133(从)

 八、查看redis主从服务及哨兵连接情况

 九、停止主服务,将会从子服务自动选举主服务


一、搭建环境

1.使用3台服务器,192.168.213.128(主),192.168.213.130(从),192.168.213.133(从)

 二、设置主从复制,配置192.168.213.128(主)redis.conf文件

1.关闭Redis连接的保护模式

默认是yes,即开启。设置外部网络连接redis服务,设置方式如下:

1、关闭protected-mode模式,此时外部网络可以直接访问

2、开启protected-mode保护模式,需配置bind ip或者设置访问密码

 2.设置Redis启动方式,daemoniz yes

daemoniz 默认情况下为no,redis不是在后台运行的(如图);

如果设为yes,则表示Redis后台运行(如图)。

 修改配置文件

 3.设置连接Redis的密码requirepass

三、设置主从复制,配置192.168.213.130(从)redis.conf文件

1.关闭Redis连接的保护模式:protected-mode no

2.设置Redis启动方式:daemoniz yes

3.设置连接Redis的密码:requirepass 123456

4.设置从服务,指定同步主服务IP:replicaof 192.168.213.128 6379

如果是旧版本,配置:slaveof  192.168.213.128 6379

5.设置从服务只读:replicareadonly yes

6.设置连接主服务的密码:masterauth 123456

 

四、设置主从复制,配置192.168.213.133(从)redis.conf文件

1.关闭Redis连接的保护模式:protected-mode no

2.设置Redis启动方式:daemoniz yes

3.设置连接Redis的密码:requirepass 123456

4.设置从服务,指定同步主服务IP:replicaof 192.168.213.128 6379

如果是旧版本,配置:slaveof  192.168.213.128 6379

5.设置从服务只读:replicareadonly yes

6.设置连接主服务的密码:masterauth 123456

五、主从复制,依次启动主从服务,主从数据同步,如图所示

启动redis命令:redis-server ../redis.conf

进入redis命令客户端命令:redis-cli -a 123456  ;  “123456”是连接redis的密码

如图,当主服务添加/更新了数据,会立即同步给从服务

 六、依次设置、主从服务哨兵配置,设置sentinel.conf文件

不管主服务sentinel.conf文件的配置,还是从服务,都是更改如下配置:

1.设置sentinel启动模式:daemoniz yes

2.设置Redis哨兵主服务:sentinel monitor mymaster 192.168.213.128 6379 2

3.设置Redis哨兵主服务连接密码:sentinel auth-pass mymaster 123456

 

 七、依次启动哨兵服务,192.168.213.128(主)192.168.213.130(从),192.168.213.133(从)

依次给服务终端输入命令:redis-sentinel sentinel.conf

 八、查看redis主从服务及哨兵连接情况

1.进入redis连接,redis-cli -a 123456

2.在主服务器输入:info replication

主服务信息

 从服务信息

 九、停止主服务,将会从子服务自动选举主服务

停止主服务

netstat -tunpl | grep redis

kill -9 14833

 查看子服务,我们看到选举了新的主服务

 

### 单台服务器上的Redis主从模式与哨兵配置 #### 主从复制配置 为了实现单台服务器上的Redis主从架构,在`redis.conf`文件中需针对主节点从节点分别做相应配置。对于从节点而言,其配置应包含如下设置: - `slave-read-only yes`表示当该实例作为从属角色时只允许读操作[^1]。 具体来说,假设运行两个不同端口的Redis服务来模拟多机部署场景下的主从关系,则可以在各自的配置文件里指定监听地址及端口号,并通过命令行参数或修改配置项告知哪个是Master而哪些又是Slaves。 例如,创建名为`master.conf`用于定义Master节点的行为;同样地,为每一个Slave准备独立的`.conf`文档(比如命名为`slave_6380.conf`, `slave_6381.conf`),其中指明它们所追随的那个Master的位置信息。 ```bash # In slave_xxxx.conf files... slaveof 127.0.0.1 6379 ``` 这使得即使在同一物理机器上也能构建起逻辑分离的服务单元,从而达到实验目的。 #### 哨兵(Sentinel)监控机制 一旦完成了上述基本设定之后就可以着手安装并初始化Sentinel组件了。它负责监视整个系统的健康状况——特别是自动发现新的Slave加入进来、判断现有成员的状态变化情况等等重要职责[^2]。 编辑一个新的配置文件叫做`sentry.conf`: ```text port 26379 daemonize yes pidfile "/var/run/redis-sentinel.pid" logfile "" dir "./" sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 60000 sentinel parallel-syncs mymaster 1 ``` 这里的关键部分在于告诉Sentinel去跟踪哪一个集群(`mymaster`)及其对应的IP地址加端口组合(即之前提到过的那个充当Leader身份的具体实例),还有就是关于判定失败的时间阈值等细节调整。 启动哨兵程序可以通过下面的方式完成: ```bash redis-server /path/to/sentry.conf --sentinel ``` 这样就实现了在一个单独的操作系统环境中建立起完整的Redis HA解决方案框架[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值