redis 一主两从搭建

文章介绍了如何通过Redis的一主两从架构解决单节点缓存的并发处理和容错问题。主从同步机制确保数据一致,从机用于读操作,可扩展多节点以应对大规模请求。在CentOS环境下,详细步骤包括安装Redis、关闭防火墙和SELinux,配置从机为主机的slave,并演示了数据复制和故障恢复过程。

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

1.前言

使用单台redis主机作为缓存,此台主机要兼并读写操作应对大量的并发,且单节点主机一旦故障服务便不能使用,所以由此引用主从架构来解决单节点redis主机的这些痛点问题,使用一主两从架构可以将读与写操作分离开来,主机分配写请求,从机分配读请求,在实际生产中读操作的需求量远远大于写操作,恰好从机可以扩张为多节点,当从机当前配置不足以应对大规模请求时,可以增加多台从机,以应对大规模的请求

2.主从原理

初始连接时全量数据同步,主机会使用rdb持久化方式生成当前时间点的数据快照,且继续接收客户端的写请求并将写请求写入缓存区中,将数据快照传输到从机上,从机就会把数据快照中的数据导入redis中,当数据快照中的数据完全写入了redis后,会继续将主机中缓存区的数据同步过来写入到redis中,同步完成以后,之后主机将会持续的同步数据到从机此时是增量同步(如果slave node开启了AOF,那么会在全量同步完成后立即执行BGREWRITEAOF,重写AOF)

3.本试验使用了三台centos7主机,配置如下如所示

主机名称

ip地址

端口

master

10.1.60.80

6379

slave1

10.1.60.114

6379

slave2

10.1.60.115

6379

4.搭建redis主从

4.1三台主机均安装redis服务并启用redis服务

参考https://blog.youkuaiyun.com/ApexPredator/article/details/129402818

4.2三台主机均关闭防火墙

systemctl stop firewalld

4.3三台主机均关闭selinux服务

setenforce 0

4.4在两台slave主机的redis配置文件中增加以下配置

vim /root/redis-6.2.11/redis.conf

#也可以手动在redis-cli里执行以下命令,但是redis重启后需要再次手动执行以下命令
slaveof 10.1.60.80 6379  #配置从机连接master的地址、端口
masterauth 123456    #配置master的redis密码,若是手动执行需要在前面加上config set,即config set masterauth 123456

4.5重启redis服务

systemctl restart redis

4.6查看主从配置是否生效

info replication

上图可以看出两台从机的redis服务状态角色均为slave,连接master的状态也为up,主机的redis服务状态角色为master,显示有两台slave连接了,也能看到两台slave的ip和port

5.主从的数据复制

5.1master写入数据slave也会同步生成

5.2slave不能写入数据,只有读权限(若是写入了数据会导致与主机数据不一致)

5.3从机挂掉重启后会自动连接master主机,且在从机挂掉期间主机写入的数据也会同步到从机上(只有在配置文件中写入主从配置才会自动连接,否则slave需要手动执行主从配置才会重连master主机)

5.4master挂掉后slave依然会保持在slave状态,主机连接状态变为down,master重新启动后又会自动连接,且master挂掉后,slave依然不能写入

5.5若是slave想改回master状态不作为从机执行以下命令即可(若是主从配置在redis配置文件中,redis重启后又会变为slave状态)

slaveof no one

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值