Redis 常见部署架构
type
status
date
slug
summary
tags
category
icon
password
一、Redis 部署架构概述
Redis 支持多种部署架构,每种架构都有其特定的应用场景和优缺点。选择合适的部署架构对系统性能和可靠性至关重要。
二、常见部署架构类型
1. 单实例部署
特点:最简单的部署方式,单个 Redis 实例
适用场景:开发测试环境、数据量小的应用
优缺点:
- 优点:部署简单,维护方便
- 缺点:单点故障,性能有限

2. 多实例部署
特点:在同一服务器上运行多个 Redis 实例
配置示例:
适用场景:资源隔离,不同业务使用不同实例
优缺点:
- 优点:资源隔离,避免单实例资源竞争
- 缺点:仍然存在单点故障风险
3. 主从复制(Master-Slave)

特点:一主多从,主节点写,从节点读
配置方式:
在从节点配置文件中添加:
查看主从状态:
主从切换:
从服务器
主服务器
工作机制:
- 异步数据复制
- 从节点默认只读
- 支持级联复制
优缺点:
- 优点:读写分离,提高读性能,数据备份
- 缺点:主节点单点故障,写性能瓶颈
4. 哨兵模式(Sentinel)

特点:监控主从节点,自动故障转移
配置示例:
工作机制:
- 监控主节点和从节点状态
- 自动故障检测和转移
- 配置自动更新
适用场景:需要高可用的场景
5. 分片集群模式(Cluster)

特点:数据分片,自动分区,高可用
数据分片:使用哈希槽(hash slot)共16384个槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽, 集群的每个节点负责一部分hash槽
节点要求:至少3个主节点,建议每个主节点配1个从节点

官方推荐,集群部署至少要 3 台以上的master节点,最好使用 3 主 3 从六个节点的模式。
优缺点:
- 优点:高可用,高性能,可扩展
- 缺点:配置复杂,客户端需要支持集群协议
192.168.66.144 3个集群模式的实例 7001 7002 7003
192.168.66.143 3个集群模式的实例 7004 7005 7006
创建分片集群
redis-cli --cluster create
使用 redis-cli 的
-cluster 子命令来创建集群。-cluster-replicas 1
表示给每个主节点分配 1 个从节点。
Redis Cluster 默认需要至少 3 个主节点,用来分配 16384 个哈希槽。
有了
-cluster-replicas 1,集群会自动把 6 个节点分成:3 个主节点
3 个从节点
Redis 会尽量把主节点和从节点分配到不同机器上,避免单机宕机导致整个槽位不可用。
redis-cli --cluster info
用来查看 Redis Cluster 集群的整体信息(类似于
status的概念)。- keys 数
0 keys:该节点上当前存放了多少 key。
- slots 槽数量
- Redis 集群一共有 16384 个槽。
- 这里显示该节点负责多少个槽,比如:
- 节点 7001 管理 5461 个槽
- 节点 7002 管理 5461 个槽
- 节点 7003 管理 5462 个槽
- slaves
- 表示该主节点有多少个从节点。
- 总结部分
[OK] 6 keys in 3 masters.- 集群有多少个 key,多少个主节点。
0.00 keys per slot on average.- 每个槽平均多少个 key。
连接集群测试数据读写
三、架构对比
架构类型 | 可用性 | 性能 | 扩展性 | 复杂度 | 适用场景 |
单实例 | 低 | 低 | 低 | 低 | 开发测试 |
多实例 | 中 | 中 | 中 | 中 | 资源隔离 |
主从复制 | 中 | 高(读) | 中 | 中 | 读写分离 |
哨兵模式 | 高 | 高(读) | 中 | 高 | 高可用 |
集群模式 | 高 | 高 | 高 | 高 | 大规模应用 |
四、配置注意事项
1. 网络配置
2. 持久化配置
3. 安全配置
五、最佳实践建议
- 生产环境至少使用哨兵模式,确保高可用性
- 监控关键指标:内存使用率、命中率、连接数、持久化状态
- 定期备份:结合RDB和AOF两种持久化方式
- 容量规划:预留20-30%的内存空间
- 客户端配置:实现重试机制和连接池
六、常见问题及解决方案
- 脑裂问题:在哨兵模式中配置合理的quorum值
- 数据不一致:使用WAIT命令确保数据同步
- 内存不足:设置合理的maxmemory-policy
- 性能瓶颈:使用pipeline减少网络往返
七、扩展知识
1. Redis模块系统
Redis支持通过模块扩展功能,如:
- RedisSearch:全文搜索
- RedisJSON:JSON文档存储
- RedisGraph:图数据库
2. Redis流(Stream)
用于实现消息队列功能,支持消费者组模式
3. Redis事务
使用MULTI/EXEC命令实现简单事务,但不支持回滚
八、注意
- 端口号使用建议:避免使用知名端口,建议使用6379以上的端口
- 密码安全:示例中缺少密码配置,生产环境必须设置强密码
- 数据目录权限:应设置适当的文件权限,避免数据泄露
Loading...