Redis集群部署方法与详细步骤
在正式部署Redis集群之前,准备工作至关重要。首先确保所有服务器已安装Redis,建议版本为5.0或更高,因为早期版本对集群功能的支持不够完善。集群通信需要用到两个端口:默认端口6379用于客户端数据读写,端口16379负责节点间数据传输。请务必在防火墙中放行这两个端口。此外,一个高可用的Redis集群至少需要3个主节点和3个从节点——共计6个实例,才能保证在某个节点故障时服务仍能正常运行。

接下来进入配置环节。在每个节点上,需要单独编辑Redis配置文件redis.conf,开启以下三个关键参数:
cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes
其中cluster-enabled yes用于启用集群模式,cluster-config-file指定集群配置文件名(每个节点会自动生成),cluster-node-timeout设置超时时间为5000毫秒——如果某个节点5秒无响应,集群会判定其失联并触发故障转移。同时建议开启appendonly yes启用AOF持久化,生产环境中这一步必不可少。
完成配置后,依次启动所有节点的Redis服务:
redis-server /path/to/redis.conf
所有节点启动完毕,使用redis-cli执行以下命令创建集群(需将IP和端口替换为实际节点信息):
redis-cli --cluster create 192.168.1.1:6379 192.168.1.2:6379 192.168.1.3:6379 192.168.1.4:6379 192.168.1.5:6379 192.168.1.6:6379 --cluster-replicas 1
该命令的含义是用6个节点组建集群,并为每个主节点分配一个从节点(--cluster-replicas 1)。执行后Redis会自动分配主从关系,并询问你是否接受当前布局——确认即可。
最后一步是验证。运行以下命令检查集群是否正常工作:
redis-cli --cluster check 192.168.1.1:6379
如果看到每个节点均标记为healthy,且所有槽位都已分配完毕,说明集群已成功上线。
Redis常用命令汇总与使用指南
集群部署完成后,日常操作离不开以下命令。下面按数据类型和功能分类整理,方便快速查阅。
键值对操作
- 设置键值:
SET key value - 获取值:
GET key - 删除键:
DEL key - 设置过期时间:
EXPIRE key seconds - 检查存在:
EXISTS key
哈希表(Hash)操作
- 设置字段:
HSET hash_key field value - 获取字段:
HGET hash_key field - 获取所有字段:
HGETALL hash_key
列表(List)操作
- 左端插入:
LPUSH list_key value - 右端插入:
RPUSH list_key value - 左端弹出:
LPOP list_key - 获取范围:
LRANGE list_key start stop
集合(Set)操作
- 添加成员:
SADD set_key member - 获取所有成员:
SMEMBERS set_key - 删除成员:
SREM set_key member
集群管理命令
- 查看节点信息:
CLUSTER NODES(可以直观查看每个节点的状态、主从关系以及槽位范围) - 手动故障转移:
CLUSTER FAILOVER(适用于计划内维护,例如主节点升级) - 重新分片:
redis-cli --cluster reshard host:port(用于手动调整数据分布)
性能监控命令
- 实时状态:
INFO(返回大量系统统计信息) - 内存统计:
INFO memory(重点关注 used_memory_rss 和 used_memory_peak) - 慢查询日志:
SLOWLOG GET(默认记录执行时间超过10毫秒的命令,是调试性能瓶颈的得力工具)
注意事项
- 持久化与安全防护不可忽视:生产环境中务必开启持久化(AOF或RDB二选一,也可搭配使用),同时配置密码认证。裸运行Redis如同门户大开,存在严重安全风险。
- 时钟同步是一个容易被忽视的重要细节:集群节点间需要保持精确的时钟同步,否则时间偏差可能导致误判超时,触发不必要的故障转移。推荐使用NTP服务统一时间。
--cluster-replicas 1要求节点数为偶数:该参数会为每个主节点分配一个从节点,因此节点总数必须能被2整除。最标准的配置是6节点——3主3从。
