美文网首页
第九章-Redis Cluster

第九章-Redis Cluster

作者: yanghx | 来源:发表于2019-04-25 22:08 被阅读0次

目录
一. 呼唤集群
二. 数据分布
三. 搭建集群
四. 集群伸缩
五. 客户端路由
六. 集群原理
七. 开发运维常见问题


一. 呼唤集群

二. 数据分布

image.png image.png image.png

哈希分布

  1. 节点取余分区

    • 客户端分片: 哈希+取余。
    • 节点伸缩: 数据节点关系变化,导致数据数据迁移。
    • 迁移数量和添加节点数量有关:建议翻倍扩容。
  2. 一致性哈希分区

    • 客户端分片:哈希+顺时针 (优化取余)
    • 节点伸缩: 只影响临近节点,但是还是有数据迁移
    • 翻倍伸缩: 保证最小迁移数据和负载均衡
  1. 虚拟槽分区
    • 预设虚拟槽: 每个槽映射一个数据子集,一般比节点数大
    • 良好的哈希函数:例如CRC16
    • 服务端管理节点,槽,数据: 例如Redis Cluster
image.png image.png image.png image.png

三. 搭建集群

基本架构

image.png image.png image.png image.png image.png image.png image.png image.png

Redis Cluster特性

  • 复制
  • 高可用
  • 分片

安装

  • 原生命令安装

    1. 配置开启节点
    2. meet
    3. 指派槽
    4. 主从
  • 官方工具安装

image.png image.png image.png image.png image.png image.png image.png

下载,编译,安装Ruby

image.png image.png image.png image.png

四. 集群伸缩

伸缩原理

image.png

扩容集群

  • 准备新节点
  • 加入集群
  • 迁移槽和数据
准备新节点 加入集群 image.png image.png image.png image.png image.png image.png image.png image.png

缩容集群

image.png image.png image.png

五. 客户端路由

  • moved重定向
  • ask重定向
  • smart客户端

image.png image.png image.png image.png image.png image.png image.png

smart客户端

  • smart客户端原理

    1. 从集群中选一个可运行节点,使用Cluster slots初始化槽和节点映射。
    2. 将cluster slots的结果映射到本地,为每个节点创建JedisPool.
    3. 准备执行命令。
  • smart客户端使用: jedisCluster


image.png

。、

六. 集群原理

七. 开发运维常见问题

  • 集群完整性
  • 带宽消耗
  • Pub/Sub广播
  • 数据倾斜
  • 读写分离
  • 数据迁移
  • 集群vs单机

集群完整性 image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png

相关文章

网友评论

      本文标题:第九章-Redis Cluster

      本文链接:https://www.haomeiwen.com/subject/bpdtnqtx.html