当前位置: 首页> 房产> 政策 > 工商代办咨询_网站设计的英文_关键词seo是什么意思_品牌营销方案

工商代办咨询_网站设计的英文_关键词seo是什么意思_品牌营销方案

时间:2025/7/9 2:27:08来源:https://blog.csdn.net/weixin_43114209/article/details/148733593 浏览次数:0次
工商代办咨询_网站设计的英文_关键词seo是什么意思_品牌营销方案

1、Redis Cluster 概念速览

能力说明
横向扩容16384 槽位自动分片,多主均摊数据;动态增删节点秒级生效
高可用多数主节点存活即可继续读写;主宕→副本选举,新 epoch 广播
客户端感知MOVED / ASK 重定向;成熟驱动本地缓存 Slot→Node 映射
弱一致异步复制 → 极端情况下丢写;可用 WAIT 半同步、min-replicas-* 保护

2、端口模型与网络要求

端口用途必须互通对象
6379客户端读写、槽位迁移 (data port)所有客户端 & 所有节点
16379Cluster Bus 节点间 Gossip / 选举节点 ↔ 节点

防火墙口诀6379 对外全开,16379 节点互开。缺任一即心跳失败、无法故障转移。

3、Docker / NAT 踩坑指南

  • Cluster 不支持端口映射 / NAT

  • 解决方案

    • Docker → --net=host

    • 或在 redis.conf 显式声明

      cluster-announce-ip   <宿主机IP>
      cluster-announce-port 6379
      cluster-announce-bus-port 16379
      

4、数据分片:16384 Hash Slot & Hash Tag

  1. 槽位计算

    slot = CRC16(key) % 16384
    
  2. Hash Tag —— 强制同槽

    user:{42}:profile
    user:{42}:cart     // 均落同槽,可事务 / Lua / MGET
    
  3. 多键操作限制:跨槽即 CROSSSLOT 报错;务必使用 Hash Tag。

5、主-从-复制与故障转移

master 心跳超时(node_timeout) → PFail
↓ 多数主确认 → Fail
↓ 副本 RAFT 选举 → 升主
↓ 新 master 广播 epoch
↓ 客户端 MOVED 重定向
  • 单主 + 全副本同宕 → 槽位缺失,集群进入 fail,拒绝写。
  • cluster-migration-barrier 可自动迁移多余副本,提升抗毁性。

6、一致性与写丢失

场景风险常用缓解
主 ACK 后即宕机异步复制未同步到副本WAIT n t 半同步;min-replicas-* 拒写
网络分区少数派继续写恢复后少数派回滚node_timeout 后少数派停止写

7、redis.conf 关键参数全表

参数作用建议
cluster-enabled yes开启集群模式必设
cluster-config-file nodes.conf存储拓扑,自动生成保留默认
cluster-node-timeout 5000故障判定 + 客户端保护 (ms)3–10 s
cluster-require-full-coverage槽缺失是否拒写生产 yes
cluster-allow-reads-when-downfail 状态仍读高读可设 yes
cluster-migration-barrier 1自动副本迁移阈值默认 1
其余:cluster-slave-validity-factorcluster-port 等按需调整

8、安装演示:六节点集群(3 主 3 从)

# 1) 目录 & 配置
for p in 7000 7001 7002 7003 7004 7005; domkdir $p && cat > $p/redis.conf <<EOF
port $p
cluster-enabled yes
cluster-config-file nodes.conf
appendonly yes
EOF
done# 2) 启动实例
for p in 700{0..5}; do redis-server $p/redis.conf & done# 3) 初始化集群
redis-cli --cluster create \127.0.0.1:7000 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 \--cluster-replicas 1

验证:

redis-cli -c -p 7000 set foo bar   # 若自动 MOVED 重定向说明集群 OK

9、日常交互 & 客户端

  • CLI

    redis-cli -c -p 7000 cluster nodes
    
  • 驱动:JedisCluster / Lettuce / Redisson / ioredis

    • 本地缓存 slot→node
    • 订阅 +switch-master 事件自动刷新

10、典型运维操作

场景命令或步骤
健康巡检redis-cli --cluster check 127.0.0.1:7000
在线 reshardredis-cli --cluster reshard 127.0.0.1:7000
手动故障转移在副本上 cluster failover
修复不一致redis-cli --cluster fix 127.0.0.1:7000
动态调参cluster set-config-epoch … / CONFIG SET

11、节点生命周期管理

11.1 新增主

# 启 7006 实例
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000
# 再 reshard 将部分槽迁至新主

11.2 新增副本

redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7000 \--cluster-slave --cluster-master-id <masterId>

11.3 删除节点

  1. 若为主 → reshard 清空槽位
  2. redis-cli --cluster del-node 127.0.0.1:7000 <nodeId>

11.4 副本迁移

redis-cli -c -p 7007 cluster replicate <newMasterId>

自动迁移由 cluster-migration-barrier 控制。

12、集群升级 & 滚动维护

  1. 在要升级的主的 副本 执行 CLUSTER FAILOVER(零数据丢失切换)。
  2. 下线原主 → 升级 Redis → 重启,现为副本。
  3. 若需恢复角色,再次手动 failover。
  4. 对所有主节点循环,业务持续写入。

13、迁移到 Redis Cluster

适用于: 单实例 / Sentinel / 自研分片。

步骤说明
1. 冻结写流量确保数据静态
2. 各旧实例 BGREWRITEAOF生成 AOF
3. 搭建空 Cluster启 N 主 0 从
4. 替换 AOF & 启动分别放入各节点
5. --cluster fix自动迁移到正确槽
6. 切换客户端使用集群驱动

另可 redis-cli --cluster import 从旧实例在线搬迁(删除源键)。

14、常见问题 & 快速排障

现象排查解决
CLUSTERDOWNMaster 数 < 半数 或槽位缺失恢复主节点 / fix 修复槽位
CROSSSLOT 报错多键跨槽使用 Hash Tag {...}
Docker 节点互不识别Port mapping / NAT--net host 或 announce 参数
写丢异步复制窗口WAIT + 增副本 + 较长 timeout

15、总结 & 最佳实践

  1. 三主三从起步,跨机房 / AZ 部署。
  2. node_timeout 3-10 s:兼顾故障检测与误判。
  3. min-replicas-* + WAIT:约束写丢窗口。
  4. 监控指标:主/从数量、slot 覆盖、replica lag、failover 事件。
  5. 演练:定期注入故障,验证自动故障转移与客户端重连。
  6. 备份:AOF / RDB + 离线存储,防极端多主全毁。

通过本文,你已拿到一份从架构原理到生产运维的 Redis Cluster 全景手册
按照步骤循序上云,横向扩容、高可用、性能提升不再是难题。祝你的 QPS 飙升,稳定运行!🚀

关键字:工商代办咨询_网站设计的英文_关键词seo是什么意思_品牌营销方案

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: