一、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单机、主从、哨兵、集群内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论