Redis 集群搭建教程

[复制链接]
发表于 2026-1-21 09:10:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
目次
1. Redis 集群简介
2. 环境预备
2.1 安装 Redis
2.2 创创建置目次
3. 设置 Redis 节点
4. 启动 Redis 节点
5. 创建 Redis 集群
5.1 启动集群下令
5.2 确认集群设置
6. 测试 Redis 集群
6.1 数据存储测试
6.2 故障转移测试
7. 进阶:集群设置参数
8. Redis 集群的高可用性
9. 总结


1. Redis 集群简介

Redis 集群是一种去中心化的架构,每个节点既可以作为主节点(Master),也可以有对应的从节点(Slave)。通过哈希槽(Hash Slot)机制,Redis 集群将数据分片存储在差异的主节点上,实现分布式存储和负载均衡。
紧张特点:


  • 数据分片:数据通过哈希槽主动分配到差异的节点。
  • 高可用性:当主节点发生故障时,集群会主动提升对应的从节点为新的主节点,包管服务连续可用。
  • 去中心化架构:Redis 集群中没有单点故障,每个节点相互通讯,共同维护集群状态。
2. 环境预备

假设我们有以下 6 台服务器,分别作为 Redis 集群中的 3 个主节点和 3 个从节点:


  • 主节点1:192.168.1.101:7001
  • 主节点2:192.168.1.102:7002
  • 主节点3:192.168.1.103:7003
  • 从节点1:192.168.1.101:7004(附属主节点1)
  • 从节点2:192.168.1.102:7005(附属主节点2)
  • 从节点3:192.168.1.103:7006(附属主节点3)
2.1 安装 Redis

起首在每台服务器上安装 Redis,安装过程与平凡 Redis 安装类似。参考以下教程安装 Redis:


  • Redis 安装教程
2.2 创创建置目次

为每个节点创建一个独立的设置目次,每个节点都必要一个独立的 Redis 设置文件和数据目次。
比方,在 192.168.1.101 上创建 7001 和 7004 的目次:
  1. # redis.conf 配置文件示例
  2. port 7001
  3. cluster-enabled yes
  4. cluster-config-file nodes-7001.conf
  5. cluster-node-timeout 5000
  6. appendonly yes
  7. daemonize yes
  8. bind 0.0.0.0
  9. logfile "/usr/local/bin/redis_cluster/7001/redis.log"
  10. dir "/usr/local/bin/redis_cluster/clusterdata"
复制代码
为其他节点设置类似的设置文件,修改端标语、日志日志文件路径和数据目次。
3. 设置 Redis 节点

为每个 Redis 实例设置一个独立的 redis.conf 设置文件。以下是一个典范的 Redis 集群节点设置示例:
  1. # redis.conf 配置文件示例
  2. port 7001
  3. cluster-enabled yes
  4. cluster-config-file nodes-7001.conf
  5. cluster-node-timeout 5000
  6. appendonly yes
  7. daemonize yes
  8. bind 0.0.0.0
  9. logfile "/usr/local/bin/redis_cluster/7001/redis.log"
  10. dir "/usr/local/bin/redis_cluster/clusterdata/"
复制代码
4. 启动 Redis 节点

在每台服务器上,启动各个 Redis 实例:
  1. redis-server /opt/redis/cluster/7001/redis.conf
  2. redis-server /opt/redis/cluster/7004/redis.conf
复制代码
依次启动全部主节点和从节点。
5. 创建 Redis 集群

全部节点启动后,我们必要将这些节点构成一个集群。利用 redis-cli 工具创建集群,并将节点之间的关系绑定起来。
5.1 启动集群下令

起首,进入恣意一台服务器,并实行以下下令创建集群(在 redis-cli 工具中):
  1. redis-cli --cluster create 192.168.1.101:7001 192.168.1.102:7002 192.168.1.103:7003 \
  2. 192.168.1.101:7004 192.168.1.102:7005 192.168.1.103:7006 --cluster-replicas 1
复制代码
参数分析:


  • --cluster create:创建一个新的集群。
  • 192.168.1.101:7001 ... 192.168.1.103:7006:集群中全部节点的 IP 和端口。
  • --cluster-replicas 1:每个主节点有一个从节点举行备份。
5.2 确认集群设置

运行以上下令后,体系会提示确认设置。输入 yes 确认集群创建:
  1. >>> Performing hash slots allocation on 6 nodes...
  2. Master[0] -> Slots 0 - 5460
  3. Master[1] -> Slots 5461 - 10922
  4. Master[2] -> Slots 10923 - 16383
  5. Adding replica 192.168.1.101:7004 to 192.168.1.101:7001
  6. Adding replica 192.168.1.102:7005 to 192.168.1.102:7002
  7. Adding replica 192.168.1.103:7006 to 192.168.1.103:7003
复制代码
集群创建完成后,你可以通过以下下令查察集群状态:
  1. redis-cli -p 7001 cluster nodes
复制代码
此下令将输出全部节点的信息和脚色(主节点或从节点)。
6. 测试 Redis 集群

6.1 数据存储测试

在集群中存储数据时,Redis 会根据哈希槽主动将数据分片存储在差异的主节点上。比方:
  1. redis-cli -p 7001
  2. SET key1 "value1"
  3. SET key2 "value2"
  4. GET key1
复制代码
数据将被主动分配到差异的节点上,可以在差异的节点实行 GET 操纵,验证数据的存储位置。
6.2 故障转移测试

可以通过手动关闭某个主节点来测试故障转移功能。比方,关闭主节点 7001:
  1. redis-cli -p 7001 shutdown
复制代码
集群会主动检测到主节点故障,并将从节点 7004 提升为新的主节点。
7. 进阶:集群设置参数



  • cluster-require-full-coverage no:当某些节点不可用时,仍旧答应集群继续工作。
  • cluster-node-timeout:设置节点之间通讯的超时时间。
  • cluster-announce-ip:在 NAT 或 Docker 中利用时,可以指定节点对外公布的 IP 所在。
8. Redis 集群的高可用性

Redis 集群的高可用性由以下机制保障:


  • 主动故障转移:当主节点故障时,从节点主动接受,保持服务可用。
  • 数据分片:通过哈希槽机制,数据分散存储在多个节点上,克制单点瓶颈。
9. 总结

通过 Redis 集群,体系可以在多个节点上分片存储数据,实现高并发、高可用的分布式存储体系。本文先容了怎样在 6 个节点上搭建 Redis 集群,并验证了集群的分片存储和故障转移功能。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表