首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Redis-集群(Cluster)部署方案

Redis-集群(Cluster)部署方案

作者头像
运维小路
发布2026-01-26 12:58:33
发布2026-01-26 12:58:33
1850
举报
文章被收录于专栏:运维小路运维小路

作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。

MySQL

PostgreSQL

MongoDB

Redis(本章节)

Etcd

Redis如果是使用比较旧的版本,就必须有ruby相关的支持,所以我们这里使用的前面编译的二进制来部署。(6个节点,3主3从)。

1. 准备工作

准备6个Redis实例,监听端口规划如下:

  • 主节点: 7001, 7002, 7003
  • 从节点: 7004, 7005, 7006

2. 配置文件准备

为每个端口创建配置文件(以7001为例):

代码语言:javascript
复制
mkdir -p redis-cluster
cd redis-cluster

# 为每个端口创建配置文件和目录
for port in 7001 7002 7003 7004 7005 7006; do
  mkdir -p $port
  cat > $port/redis.conf <<EOF
port $port
cluster-enabled yes
cluster-config-file nodes-$port.conf
cluster-node-timeout 5000
appendonly yes
dir ./
daemonize no
protected-mode no
bind 0.0.0.0
EOF
done

3. 启动所有节点

代码语言:javascript
复制
# 启动6个Redis实例
for port in 7001 7002 7003 7004 7005 7006; do
  redis-server $port/redis.conf &
done

这个时候6个Redis节点还只是6个单机节点。

代码语言:javascript
复制
# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:53d479ffd8a79cb8ecfa5014ab238630c3423e2c
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

4. 创建集群(关键步骤)

使用 redis-cli --cluster create 命令创建集群:前3个是主节点,后面3个是从节点。

代码语言:javascript
复制
redis-cli --cluster create \
  127.0.0.1:7001 \
  127.0.0.1:7002 \
  127.0.0.1:7003 \
  127.0.0.1:7004 \
  127.0.0.1:7005 \
  127.0.0.1:7006 \
  --cluster-replicas 1

5.再次查看主从状态

这个是已经按照我们预期7001和7004组成了一个主从集群,另外2个类似。

代码语言:javascript
复制
[root@localhost redis-cluster]# redis-cli -p 7001
127.0.0.1:7001> info

# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=7004,state=online,offset=252,lag=1
master_failover_state:no-failover
master_replid:5dddaedbcf16e4efcee28bfba40cf1b0b1428e59
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:252
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:252

6.查看集群状态

代码语言:javascript
复制
[root@localhost redis-cluster]# redis-cli -p 7001
127.0.0.1:7001> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:707
cluster_stats_messages_pong_sent:703
cluster_stats_messages_sent:1410
cluster_stats_messages_ping_received:698
cluster_stats_messages_pong_received:707
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:1410
total_cluster_links_buffer_limit_exceeded:0
cluster_slot_migration_active_tasks:0
cluster_slot_migration_active_trim_running:0
cluster_slot_migration_active_trim_current_job_keys:0
cluster_slot_migration_active_trim_current_job_trimmed:0
cluster_slot_migration_stats_active_trim_started:0
cluster_slot_migration_stats_active_trim_completed:0
cluster_slot_migration_stats_active_trim_cancelled:0
代码语言:javascript
复制
127.0.0.1:7001> cluster nodes
70e246423009e8ec9d10364b76ab56161193bf77 127.0.0.1:7003@17003 master - 0 1768833882000 3 connected 10923-16383
ae557e67062f7a6aa7368f4e249e37ad8823fbdd 127.0.0.1:7005@17005 slave 24b4b8415b6761cbb3e253765a25073c93a07308 0 1768833882840 2 connected
fdb93ba3ee8daf72f47aba81c609b052fd59beeb 127.0.0.1:7004@17004 slave 2b3dbf190a7ce625cc438c9af2628330ea8d044e 0 1768833883845 1 connected
24b4b8415b6761cbb3e253765a25073c93a07308 127.0.0.1:7002@17002 master - 0 1768833883544 2 connected 5461-10922
cedb74c1196cd41d72dc3686cd72c47d6ebaa049 127.0.0.1:7006@17006 slave 70e246423009e8ec9d10364b76ab56161193bf77 0 1768833883543 3 connected
2b3dbf190a7ce625cc438c9af2628330ea8d044e 127.0.0.1:7001@17001 myself,master - 0 0 1 connected 0-5460
127.0.0.1:7001> 

7. 故障模拟测试

代码语言:javascript
复制
# 停止一个主节点(模拟故障)
redis-cli -p 7001 shutdown

# 检查从节点是否升为主节点
redis-cli -p 7004 cluster nodes
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MongoDB
    • 1. 准备工作
    • 2. 配置文件准备
    • 3. 启动所有节点
    • 这个时候6个Redis节点还只是6个单机节点。
    • 4. 创建集群(关键步骤)
    • 7. 故障模拟测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档