3 台服务器搭建 Redis 高可用集群,小编整理了以下两种常见的方案:Redis Sentinel 和 Redis Cluster
方案一:Redis Sentinel 高可用集群
Redis Sentinel 是 Redis 官方提供的用于监控和自动故障转移的解决方案。它适合于小规模的高可用部署。
步骤:
-
安装 Redis 和 Redis Sentinel:
在每台服务器上安装 Redis 和 Redis Sentinel。
# Ubuntu 示例 sudo apt-get update sudo apt-get install redis-server redis-sentinel
-
配置 Redis 主从复制:
编辑每台服务器的 Redis 配置文件
redis.conf
,配置主从复制。-
在服务器 A 的配置文件
redis.conf
中设置为主节点:port 6379 bind <server_A_IP> daemonize yes # 其他配置项
-
在服务器 B 和服务器 C 的配置文件
redis.conf
中设置为从节点:port 6379 bind <server_B_IP> # 对于服务器 B bind <server_C_IP> # 对于服务器 C daemonize yes replicaof <server_A_IP> 6379 # 其他配置项
-
-
配置 Sentinel 监控:
在每台服务器上配置 Sentinel 监控 Redis 主节点。
-
编辑每台服务器的 Sentinel 配置文件
sentinel.conf
:port 26379 bind <server_A_IP> daemonize yes sentinel monitor mymaster <server_A_IP> 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 10000
sentinel monitor mymaster <server_A_IP> 6379 2
:监控名为mymaster
的 Redis 主节点,当它失效时需要至少 2 个 Sentinel 同意才能进行故障转移。sentinel down-after-milliseconds mymaster 5000
:当主节点 5000 毫秒没有响应时,Sentinel 将主节点标记为下线。sentinel failover-timeout mymaster 10000
:执行故障转移的超时时间为 10000 毫秒。
-
-
启动 Redis 和 Sentinel 实例:
分别启动每台服务器上的 Redis 和 Sentinel 服务。
# 启动 Redis 服务 sudo systemctl start redis-server # 启动 Sentinel 服务 sudo systemctl start redis-sentinel
-
验证和测试:
使用
redis-cli
和redis-sentinel
命令验证配置和故障转移功能。- 在任意一台服务器上连接 Redis 和 Sentinel 进行状态检查和操作验证。
方案二:Redis Cluster 高可用集群
Redis Cluster 是 Redis 提供的分布式集群解决方案,适合需要水平扩展和高可用性的场景。
步骤:
-
安装 Redis:
在每台服务器上安装 Redis。
# Ubuntu 示例 sudo apt-get update sudo apt-get install redis-server
-
配置 Redis 集群模式:
编辑每台服务器的 Redis 配置文件
redis.conf
,配置为集群模式。-
在服务器 A 的配置文件
redis.conf
中配置:port 7000 cluster-enabled yes cluster-config-file nodes-7000.conf cluster-node-timeout 5000 appendonly yes
-
在服务器 B 和服务器 C 的配置文件
redis.conf
中配置类似的内容,端口分别为 7001 和 7002,并配置好其他项。
-
-
创建 Redis Cluster:
使用
redis-cli
创建 Redis Cluster。-
在任意一台服务器上执行以下命令来创建 Redis Cluster:
redis-cli --cluster create <server_A_IP>:7000 <server_B_IP>:7001 <server_C_IP>:7002 --cluster-replicas 1
--cluster-replicas 1
表示为每个主节点创建一个从节点。
-
-
验证和测试:
使用
redis-cli
命令验证 Redis Cluster 的配置和集群状态。-
连接到任意一个 Redis 节点,执行如下命令:
redis-cli -c -h <server_A_IP> -p 7000
-
检查集群节点状态:
redis-cli -c -h <server_A_IP> -p 7000 cluster nodes
-
-
监控和维护:
使用 Redis 自带的监控工具或第三方工具监控 Redis Cluster 的状态和性能。
注意事项:
- 网络配置:确保 Redis 节点之间的网络通信畅通,节点能够相互发现和通信。
- 安全配置:限制 Redis 的访问权限,例如设置密码和配置防火墙规则。
- 定期备份:根据业务需求和数据重要性,定期执行 Redis 数据的备份操作。
根据实际需求和环境特点,选择适合的 Redis 高可用集群方案,并确保各节点的配置和状态都正确和稳定。