redis-cluster

呼唤集群

  1. 并发量

redis 10W/每秒 ,超过10W时,如何处理?

  1. 数据量

内存容量超过单机物理内存, 如何处理?

  1. 网络流量

单机网络流量无法满足时如何处理?

简单解决方案: 增强单机性能.瓶颈明显. 替代方案: 分布式(cluster)3.0版本提供

数据分布

数据分区

  • 顺序分区: 数据分散度易倾斜 例如: BigTable HBase
  • 哈希分区(例如节点取模): 数据高度分散,键值分布和数据无关,无法顺序访问,支持批量操作 例如: redis-cluster Memcache(一致性哈希)
  1. 节点取余 添加节点时会发生数据严重偏移, 采用多倍扩容(数据迁移量50%,稍微好点). 缺点:数据迁移量大
  2. 一致性哈希分区 哈希+顺时针(优化取余) 节点伸缩: 只影响临近节点 ,翻倍伸缩减少数据迁移量
  3. 虚拟槽分区 0-16383

搭建集群

  • 节点

cluster-enabled:yes

  • meet

节点通信,所有节点之间共享消息

  • 指派槽

为每个节点平均分配16384个槽

  • 复制

通过主从复制实现高空,采用分片策略.

安装

  • 原生命令安装
  1. 配置开启节点
port
daemonize yes
dir
dbfilename
logfile
cluster-enable yes //集群节点
cluster-node-timeout 15000 //故障转移时间
cluster-config-file //集群节点配置
cluster-require-full-coverage yes //要求所有服务都正常才算正常,一般为no
  1. meet
cluster meet ip port
redis-cli -h 127.0.0.1 -p 7000 cluster meet ip port
  1. 指派槽
cluster addslots slot [slot ...]
redis-cli -h ip -p port cluster addslots {0...1222}
  1. 分配主从关系
cluster replicate node-id
redis-cli -h ip -p port cluster replicate ${node-id-7000}
  • 官方工具安装 redis-trib

Ruby环境

  1. 下载安装ruby 2. 安装rubygem redis 3 安装redis-trib.rb

集群伸缩

客户端路由

集群原理

开发运维常见问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值