游乐游手机版
首页/数据库/文章详情

Redis集群部署方案与常用命令详解

时间:2026-06-14 07:03
部署Redis集群需准备至少3主3从共6个节点,版本5 0以上,开启集群模式并配置端口,使用redis-cli--clustercreate命令组建集群,通过clustercheck验证节点健康。常用命令涵盖键值、哈希、列表、集合操作及集群管理,如CLUSTERNODES和CLUSTERFAILOVER。生产环境需开启持久化与时钟同步。

Redis集群部署方法与详细步骤

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

redis集群部署方案和redis常用命令

接下来进入配置环节。在每个节点上,需要单独编辑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从。
来源:https://www.jb51.net/database/356948x33.htm
上一篇解决Hive建表中文乱码问题的详细方法与设置 下一篇Redis集群maxmemory参数设置方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Redis 7.0增量AOF重写RDB前导码配置详解
数据库 · 2026-07-02

Redis 7.0增量AOF重写RDB前导码配置详解

先说一个几乎所有人都踩过的典型误区:很多人把 aof-use-rdb-preamble yes 当作开启“增量重写”的开关。实际上,这个配置只干了一件事——让重写后的 AOF 文件头部带上 RDB 快照。它解决的是加载速度问题,跟“增量重写”本身的概念压根不是一回事。真正的增量重写,依赖的是 Red

在Python Tornado异步框架中安全执行SQL命令的方法与最佳实践
数据库 · 2026-07-02

在Python Tornado异步框架中安全执行SQL命令的方法与最佳实践

直接在Tornado里用SQLAlchemy同步执行SQL,结果就是阻塞IOLoop,所谓“异步框架里写同步数据库代码”,等于白搭。安全执行的关键不是“怎么写SQL”,而是“怎么不卡住事件循环”。 为什么不能在RequestHandler里直接调用session execute() 因为sessio

利用SQL触发器实现在INSERT数据时自动同步到审计表
数据库 · 2026-07-02

利用SQL触发器实现在INSERT数据时自动同步到审计表

先说结论:可以用触发器把 INSERT 数据同步到审计表,但必须用 AFTER INSERT,并且审计表的字段顺序、类型、字符集得和源表严格一致。否则,轻则写入错位、数据截断,重则直接报错、丢数据。下面把这些坑一个一个掰开说。 能,但必须用 AFTER INSERT,且审计表字段顺序、类型、字符集要

如何用SQL编写按不同工作日统计员工出勤率
数据库 · 2026-07-02

如何用SQL编写按不同工作日统计员工出勤率

在实际业务中,统计不同工作日的出勤率是HR系统里的高频需求。如果直接按日期函数分组,很容易掉进语言环境、索引失效或分母口径的坑里。下面就来拆解具体的实现要点。 必须用 CASE WHEN 将日期映射为固定 weekday 标签(如 Mon )再分组,避免语言环境导致的分组断裂;需过滤 DOW IN

Spring Boot 3动态拼接SQL为何引发严重安全漏洞
数据库 · 2026-07-02

Spring Boot 3动态拼接SQL为何引发严重安全漏洞

SQL注入漏洞的核心成因,本质上是因为用户输入直接参与了SQL语句的字符串拼接,而未采用参数化绑定机制。在MyBatis中使用${}、QueryWrapper中调用apply()与last()、JPA的@Query注解进行拼接等操作,都会绕过PreparedStatement的安全防护。动态字段必须