redis 一主两从搭建

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

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.csdn.net/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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建 Redis 集群,你可以按照以下步骤进行: 1. 下载和安装 Redis:你可以从 Redis 官方网站下载并安装 Redis。确保在每个节点上都正确安装了 Redis。 2. 配置主节点:找到你想要作为主节点的 Redis 实例的配置文件(redis.conf),打开该文件并进行如下配置: - 设置 `port` 参数为主节点的端口号,默认为 6379。 - 设置 `bind` 参数为主节点的 IP 地址,如果希望所有 IP 地址都可以访问,可以设置为 `0.0.0.0`。 - 设置 `cluster-enabled` 参数为 `yes`,启用集群模式。 - 设置 `cluster-config-file` 参数为一个文件路径,用于保存集群的配置信息。 - 设置 `cluster-node-timeout` 参数为一个适当的数值,表示节点之间通信超时时间。 3. 启动主节点:在主节点上启动 Redis 服务,使用以下命令: ``` redis-server /path/to/redis.conf ``` 4. 配置从节点:对于每个从节点,复制主节点的配置文件(redis.conf)为一个新的文件,并进行如下配置: - 设置 `port` 参数为从节点的端口号,默认为 6379。 - 设置 `bind` 参数为从节点的 IP 地址。 - 设置 `cluster-enabled` 参数为 `yes`,启用集群模式。 - 设置 `cluster-config-file` 参数为一个文件路径,用于保存集群的配置信息。 - 设置 `cluster-node-timeout` 参数为一个适当的数值,表示节点之间通信超时时间。 - 设置 `slaveof` 参数为主节点的 IP 地址和端口号,指示从节点复制主节点。 5. 启动从节点:在每个从节点上启动 Redis 服务,使用以下命令: ``` redis-server /path/to/redis.conf ``` 6. 创建 Redis 集群:使用 Redis 提供的 `redis-cli` 命令行工具创建 Redis 集群。在任意一个节点上执行以下命令: ``` redis-cli --cluster create <node1>:<port1> <node2>:<port2> ... <nodeN>:<portN> --cluster-replicas 1 ``` 这里 `<node1>`、`<port1>` 是主节点的 IP 地址和端口号,`<node2>`、`<port2>` 等是从节点的 IP 地址和端口号。`--cluster-replicas 1` 表示为每个主节点创建一个从节点。 7. 验证集群状态:使用 `redis-cli` 连接到任意一个节点,并执行以下命令验证集群状态: ``` redis-cli -c cluster nodes ``` 以上步骤完成后,你就成功搭建了一个 Redis 集群,其中包含一个主节点和个从节点。你可以根据需要添加更多的从节点来扩展集群。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值