ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 软件工程 >> 亲密接触Redis-第三天Redis的Load Balance)

亲密接触Redis-第三天Redis的Load Balance)(6/7)

来源:网络整理     时间:2016-03-14     关键词:

本篇文章主要介绍了"亲密接触Redis-第三天Redis的Load Balance)",主要涉及到方面的内容,对于软件工程感兴趣的同学可以参考一下: 前言上两天讲述了Redis的基本搭建和基于HA的集群布署方式以及相关的策略和注意点。今天开始讲述Redis的Cluster功能,而这块目前来说网上资料不是太全,...

亲密接触Redis-第三天Redis的Load Balance)

reds-cli会动态从集群中查到含有key=1的节点,把客户端连接重定向至该节点并调用该key所绑的value

添加新master节点

  • 添加一个master节点:创建一个空节点(empty node),然后将某些slot移动到这个空节点上,这个过程目前需要人工干预
  • establish_config.sh根据端口生成配置文件establish_config.sh 6386?> conf/redis-6386.conf
  • 启动该节点
  • 加入空节点到集群redis-trib.rb add-node newip:newport 已有集群中任意ip:已有集群中任意port
注:

新节点没有包含任何数据, 因为它没有包含任何slot。新加入的加点是一个主节点, 当集群需要将某个从节点升级为新的主节点时, 这个新节点不会被选中,同时新的主节点因为没有包含任何slot,不参加选举和failover。

亲密接触Redis-第三天Redis的Load Balance)

  • 为新节点分配slot:redis-trib.rb reshard ip:port

添加slave节点

  1. 按照添加master节点的前3步
  2. redis-cli连接上新节点shell,输入命令:cluster replicate 对应master的node-id
亲密接触Redis-第三天Redis的Load Balance)
注意:

在线添加slave 时,需要bgsave整个master数据,并传递到slave,再由 slave加载rdb文件到内存,rdb生成和传输的过程中消耗Master大量内存和网络IO,以此不建议单实例内存过大,线上小心操作。

删除Master节点

  1. 删除master节点之前首先要使用reshard移除当前master的全部slot到新的master上
  2. 删除空的master节点。

亲密接触Redis-第三天Redis的Load Balance)

亲密接触Redis-第三天Redis的Load Balance)

JEDIS(Redis JAVA客户端)的一些坑

相关图片

相关文章