3节点部署redis集群模式
1. redis三种模式说明
1.1 单机模式
单机模式是Redis最简单的部署形式,仅包含一个Redis实例。
这种模式易于设置和管理,适用于开发、测试和小型生产环境。
单机模式的缺点是,它无法提供高可用性和水平扩展性。如果Redis实例出现故障,可能导致服务中断。
1.2 哨兵模式
哨兵模式是基于主从复制架构的,包含一个主节点和多个从节点。主节点负责读写操作,从节点负责复制主节点的数据。
Redis哨兵实例负责监控主从节点的健康状况。当主节点出现故障时,哨兵会自动将一个从节点提升为新的主节点,从而实现自动故障转移和高可用性。
哨兵模式提供了读取操作的水平扩展性,可以将读请求分发到从节点以减轻主节点的负担。但是,它不支持写操作的水平扩展。
哨兵模式比单机模式更复杂,需要配置和管理主从复制和哨兵实例。
作为开发人员需要知道的是,与单机模式不同,使用哨兵模式时要修改少量代码。
1.3 集群模式
集群模式是Redis的分布式部署方案,数据分布在多个主节点上,每个主节点都有一个或多个从节点。
集群模式提供了高可用性、读写操作的水平扩展性和数据分片功能。Redis集群通过键空间分区将数据分布在多个主节点上,每个主节点负责一部分键空间。
当某个主节点出现故障时,其对应的从节点会被提升为新的主节点,实现故障转移。
集群模式相对于单机模式和哨兵模式更复杂,需要配置和管理多个主从节点和分片策略。
作为开发人员需要知道的是,与单机模式、哨兵模式不同,使用集群模式时要修少量代代码。
在实际使用中,集群模式也较少使用,主要还是哨兵模式;集群模式设备成本、维护成本都比较高;
2. 环境说明
操作系统 | IP | 主机名 | 端口号 | 备注 |
---|---|---|---|---|
CentOS 7.9 | 192.168.3.71 | redis-01.tiga.cc | 6380 | master |
CentOS 7.9 | 192.168.3.71 | redis-01.tiga.cc | 6381 | redis-02的slave |
CentOS 7.9 | 192.168.3.72 | redis-02.tiga.cc | 6380 | master |
CentOS 7.9 | 192.168.3.72 | redis-02.tiga.cc | 6381 | redis-03的slave |
CentOS 7.9 | 192.168.3.73 | redis-03.tiga.cc | 6380 | master |
CentOS 7.9 | 192.168.3.73 | redis-03.tiga.cc | 6381 | redis-01的slave |
redis版本使用当前最新stable版本: 7.0.12
3. 部署redis集群
3.1 通过源码编译安装redis
# 准备编译环境
yum install -y wget gcc-c++
echo 'vm.overcommit_memory=1' >> /etc/sysctl.conf
sysctl -p
wget https://codeload.github.com/redis/redis/tar.gz/refs/tags/7.0.12 -O redis-7.0.12.tar.gz
tar xf redis-7.0.12.tar.gz
cd redis-7.0