【Redis开发与运维】第10章 读书笔记

第10章 集群

10.1 数据分布

10.1.1 数据分布理论

哈希分区

顺序分区

哈希分区规则:

  1. 节点取余分区

  2. 一致性哈希分区:Dynamo

  3. 虚拟槽分区:Redis Cluster

10.1.2 Redis 数据分区

Redis 虚拟槽的特点:

  • 解耦数据与节点之间的关系,减价节点扩缩容难度。
  • 节点自身维护槽的映射关系。
  • 支持槽,节点,键之间的映射查询,用于数据路由,在线伸缩等场景

10.1.3 集群功能限制

  1. 批量操作支持有限。例如 mset,mget 只支持具有相同 slot 值得 key 执行批量操作。
  2. key 事务支持有限。
  3. key 作为数据分区得最小粒度,因此不能将一个大的键值对象映射到不同节点。
  4. 不支持多数据库空间。
  5. 复制结构只支持一层,从节点只能复制主节点,不支持嵌套树状复制结构。

10.2 搭建集群

搭建集群得三个步骤:

  1. 准备节点
  2. 节点握手
  3. 分配槽

10.2.1 准备节点

10.2.2 节点握手

10.2.3 分配槽

10.2.4 用 redis-trib.rb 搭建集群

10.3 节点通信

10.3.1 通信流程

P2P 的 Gossip 协议:彼此之间不断通信交换信息,一段时间后所有节点都会知道集群的完整信息。

10.3.2 Gossip 消息

10.3.3 节点选择

  1. 选择发送消息的节点数量
  2. 消息数据量

10.4 集群伸缩

10.4.1 伸缩原理

10.4.2 扩容集群

  1. 准备新节点
  2. 加入集群
  3. 迁移槽和数据

10.4.3 收缩集群

  1. 下线迁移槽
  2. 忘记节点

10.5 请求路由

10.5.1 请求重定向

10.5.2 Smart 客户端

10.5.3 ASK 重定向

10.6 故障转移

10.7 集群运维

10.7.1 集群完整性

10.7.2 带宽消耗

10.7.3 Pub/Sub 广播问题

10.7.4 集群倾斜

  1. 数据倾斜

  2. 请求倾斜

10.7.5 集群读写分离

  1. 只读连接
  2. 读写分离10.7.6 手动故障转移

10.7.6 手动故障转移

10.7.7 数据迁移

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值