平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“Redis 7.X 部署指南之单机、主从、哨兵和集群部署”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
一、Redis简介与部署方式概览
结合项目来看,Redis是一款高性能的键值存储系统,兼容多种数据结构,常用来缓存、消息队列、分布式锁等场景。根据不同的可用性、扩展性与性能需求,Redis提供了四种常用部署模式:
- 单机部署:适合开发、测试环境,轻松快捷。
- 主从部署:实现数据冗余与读写分离,提升读取性能。
- 哨兵部署:在主从基础上实现自动故障转移,提高可用性。
- 集群部署:兼容数据分片与高可用,适合大规模、高并发场景。
下面将逐步讲解每种部署方式的安装、设置与操作。
二、环境准备(通用步骤)
2.1 系统要求
- Linux系统(CentOS 7+ / Ubuntu 18.04+)
- GCC环境(Redis由C编写)
- 网络互通(集群、主从需互通)
2.2 安装GCC
# 检查gcc是否安装
gcc --version
# 安装gcc
yum install gcc -y # CentOS
apt install gcc -y # Ubuntu
2.3 关闭防火墙(测试环境建议)
systemctl stop firewalld.service
systemctl disable firewalld
# 或使用firewall-cmd放行相应端口
三、单机部署
3.1 下载与编译
mkdir -p /opt/software/redis
cd /opt/software/redis
wget https://download.redis.io/redis-stable.tar.gz
tar -xzf redis-stable.tar.gz
cd redis-stable
make install
3.2 检查安装
ll /usr/local/bin/redis-*
应看到以下关键文件:
redis-server:服务端redis-cli:客户端redis-sentinel:哨兵redis-benchmark:性能测试工具
3.3 设置与启动
编辑 redis.conf:
vim redis.conf
关键修改:
bind * -::* # 允许所有IP连接
protected-mode no # 关闭保护模式
daemonize yes # 后台运行
logfile /opt/software/redis/redis-stable/redis.log
dir /opt/software/redis
requirepass 1qaz@WSX # 设置密码(可选)
启动服务:
redis-server redis.conf
redis-cli -a 1qaz@WSX # 带密码连接
3.4 常用命令
keys * # 查看所有键
auth 密码 # 认证
quit # 退出
redis-cli shutdown # 关闭服务
四、主从部署(Master-Slave)
4.1 架构说明
- 一主多从,数据单向同步
- 主节点可写,从节点只读
- 故障时需人工切换主节点
4.2 设置从节点
在从节点的 redis.conf 中添加:
replicaof 192.168.75.129 6379 # 主节点IP与端口
masterauth 1qaz@WSX # 如果主节点有密码
4.3 查看主从信息
在主节点执行:
redis-cli -a 1qaz@WSX info replication
输出中应看到 connected_slaves 数量及从节点信息。
五、哨兵部署(Sentinel)
5.1 哨兵作用
- 监控主从节点状态
- 自动故障转移
- 通知客户端新主节点地址
5.2 哨兵设置
编辑 sentinel.conf:
protected-mode no
port 26379
daemonize yes
logfile /opt/software/redis/redis-stable/sentinel.log
dir /opt/software/redis
sentinel monitor mymaster 192.168.75.129 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
5.3 启动哨兵
redis-sentinel sentinel.conf
5.4 查看哨兵状态
redis-cli -p 26379 info sentinel
5.5 故障模拟与恢复
- 停止主节点
- 观察哨兵日志,查看新主节点选举
- 重启原主节点,观察是否变为从节点
六、集群部署(Cluster)
6.1 集群特点
- 数据分片(16384个哈希槽)
- 自动故障转移
- 兼容水平扩展
6.2 集群设置(三主三从示例)
每台机器设置两个节点(6379主,6380从)。
设置文件示例 redis_6379.conf:
bind * -::*
protected-mode no
port 6379
daemonize yes
cluster-enabled yes
cluster-node-timeout 5000
dir /opt/software/redis/cluster
appendonly yes
logfile "/opt/software/redis/redis-stable/cluster/redis6379.log"
cluster-config-file nodes-6379.conf
6.3 启动所有节点并新建集群
# 启动节点
redis-server ./cluster/redis_6379.conf
redis-server ./cluster/redis_6380.conf
# 创建集群
redis-cli --cluster create
--cluster-replicas 1
192.168.75.129:6379 192.168.75.129:6380
192.168.75.131:6379 192.168.75.131:6380
192.168.75.132:6379 192.168.75.132:6380
6.4 集群常用命令
redis-cli cluster info # 集群信息
redis-cli cluster nodes # 节点列表
redis-cli -c # 开启集群模式连接
6.5 故障转移测试
停止某一主节点,观察其从节点是否自动提升为主节点,同时重新加入集群。
七、设置文件与命令汇总
7.1 核心设置文件路径
- 单机/主从:
/opt/software/redis/redis-stable/redis.conf - 哨兵:
/opt/software/redis/redis-stable/sentinel.conf - 集群:
/opt/software/redis/redis-stable/cluster/redis_{port}.conf
7.2 常用命令速查
# 服务管理
redis-server xxx.conf
redis-cli shutdown
ps aux | grep redis
# 集群操作
redis-cli --cluster create ...
redis-cli cluster nodes
redis-cli -c
# 数据操作
keys *
set/get/del
auth 密码
info replication
八、部署建议与注意事项
| 部署方式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 单机 | 开发、测试 | 轻松快捷 | 无高可用,性能受限 |
| 主从 | 读多写少,数据备份 | 读写分离,数据冗余 | 故障需人工干预 |
| 哨兵 | 高可用,自动故障转移 | 自动切换,客户端透明 | 设置复杂,数据可能丢失 |
| 集群 | 大数据量,高并发,高可用 | 数据分片,水平扩展 | 部署复杂,运维成本高 |
8.1 安全建议
- 生产环境务必设置密码
- 采用防火墙限制访问IP
- 定期备份RDB/AOF文件
8.2 性能调优建议
- 根据内存采用情况选择合适的持久化方式
- 合理设置
maxmemory和淘汰策略 - 监控慢查询与内存碎片
九、总结
Redis的部署方式多样,选择适合业务场景的方案至关重要:
- 学习和开发可用单机
- 小型项目可用主从+哨兵
- 中大型高并发系统建议集群
到此这篇关于Redis 7.X 部署指南:单机、主从、哨兵、集群的文章就介绍到这了,更多相关Redis单机、主从、哨兵、集群内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多兼容脚本之家!
- Redis从单点到集群部署模式(单机模式 主从模式 哨兵模式)
- K8S部署Redis(单机、集群)的超详细步骤
- 聊聊docker 单机部署redis集群的问题
- Docker 部署单机版 Pulsar 和集群架构 Redis(开发神器)的方法
- redission-tomcat更快实现从单机部署到多机部署详解