Redis 最低为5.0版本,以下为6.2.6版本信息。
模式 高可用性 数据分片 部署复杂度 适用场景
Sentinel 模式 高 无 中等 中小规模,需要高可用性
集群模式 高 支持 复杂 大规模,需要高可用性和数据分片
- Redis Sentinel 模式(在主从复制的基础上引入 Sentinel 实例,用于监控 Redis 节点的健康状态,并在主节点故障时自动进行故障转移)
1.主节点redis.conf配置
bind 0.0.0.0
port 6379
daemonize yes
# 设置主节点密码
requirepass 666666
# 设置从节点连接主节点的密码
masterauth 666666
2.从节点redis配置
bind 0.0.0.0
port 6379
daemonize yes
# 指向主节点
replicaof 192.168.10.103 6379
# 设置主节点密码
masterauth 666666
# 设置从节点密码
requirepass 666666
3.所有节点sentinel.conf配置
bind 0.0.0.0
port 26379
daemonize yes
# mymaster:主节点名称
# 192.168.10.103:主节点的 IP 地址
# 2:需要至少 2 个 Sentinel 实例确认主节点故障
sentinel monitor mymaster 192.168.10.103 6379 2
# 5000:主节点无响应 5 秒后标记为下线
sentinel down-after-milliseconds mymaster 5000
# 60000:故障转移超时时间
sentinel failover-timeout mymaster 60000
# 设置主节点密码
sentinel auth-pass mymaster 666666
4.启动
# 启动所有redis
redis-server /PATH/redis.conf
# 启动所有sentinel
redis-sentinel /PATH/sentinel.conf
5.相关命令
# 命令查看新的主节点
sentinel master mymaster #命令查看新的主节点
redis-cli -h <Server1_IP> -p 6379 -a yourpassword shutdown# 检查主从复制-连接到主节点
redis-cli -h <Server1_IP> -p 6379 -a yourpassword
# 检查主从复制-执行命令
info replication# 检查 Sentinel 状态-连接到任意 Sentinel 实例
redis-cli -h <Sentinel_IP> -p 26379
# 检查 Sentinel 状态-执行命令
sentinel master mymaster
sentinel slaves mymaster
sentinel sentinels mymaster
- Redis 集群分片(Redis 官方提供的分布式解决方案,支持数据分片和自动故障转移;数据被分片到多个主节点上,每个主节点可以有一个或多个从节点)
以下为三个服务器,做三主三从,每个服务器一主一从。只有每个服务器主从数据不一致,某个服务器挂掉后,集群才能正常使用(挂掉的主数据对应的从数据服务会自动变成主服务)
1.redis-6379.conf配置
bind 0.0.0.0
port 6379
daemonize yes
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 5000
appendonly yes
2.redis-6380.conf配置
bind 0.0.0.0
port 6380
daemonize yes
cluster-enabled yes
cluster-config-file nodes-6380.conf
cluster-node-timeout 5000
appendonly yes
3.启动各服务上的redis
redis-server /PATH/redis-6379.conf
redis-server /PATH/redis-6380.conf
4.设置redis集群
# --cluster-replicas 1:表示每个主节点有一个从节点
# 前3个节点会被自动分配为主节点,后 3 个节点为从节点。
redis-cli --cluster create \
192.168.10.103:6379 192.168.10.104:6379 192.168.10.105:6379 \
192.168.10.103:6380 192.168.10.104:6380 192.168.10.105:6380 \
--cluster-replicas 1
5.相关命令
# 验证集群状态
redis-cli --cluster check 192.168.10.103:6379