关闭

高性能网站架构之缓存篇—Redis集群增删节点

标签: 高性能架构集群缓存redis
2708人阅读 评论(4) 收藏 举报
分类:

         上一篇文章,我们搭建了redis-cluster集群,这篇博客跟大家讲一下如何在一个运行的集群上增加节点或者删除节点。

Redis集群添加节点

       首先我们要新建立一个节点,将redis01 复制一份改为redis07,然后修改端口号也改为7007 ,然后我们执行[root@localhost redis07]# ./redis-server redis.conf 启动以后,然后进行查看,发现有一个端口号为7007的redis实例已经启动了!我们怎么把这个redis 实例添加到集群中呢。

       在将7007 端口号的redis实例添加到集群之前,一定要确保这个redis实例没有存储过数据,也不能持久化的数据文件,否则在添加的时候会报错的!我们执行命令  ./redis-trib add-node127.0.0.1:7007 to cluster 127.0.0.1:7001 就可以将端口号为7007的实例添加到redis-cluster中。如下如所示。

        

       我们执行在任意一个客户端下执行 cluster nodes 命令,可以看到7007 已经作为主节点添加到我们的集群中了,但是可以看到他没有分配哈希槽,没有分配哈希槽的话表示就没有存储数据的能力,所以我们需要将其他节点上的哈希槽分配到这个节点上。

   

       下边我们看一下如何分配哈希槽。我们随便进入一个客户端,然后我们执行 ./redis-trib.rb reshard 192.168.20.140:7001, 就可以看到如下图所示提示,问我们需要移动多少个哈希槽,我们在这里移动1000个。

        

        完以后,又会问我们需要覆盖的节点id是什么,这个id就是我们新创建的节点id。然后让我们输入源节点,如果这里我们输入all的话,他会随机的从所有的节点中抽取1000个作为新节点的哈希槽。

       

        我们输入all以后,会出下下图所示东西,表示hash槽正在移动。

        

        移动完以后,我们进入客户端,执行cluster nodes 命令,查看集群节点的状态,我们会看到原来没有哈希槽的7007节点,分配到了1000个哈希槽,而且是不连续的。说明是从原来的三个节点中抽取的。

        

        这样我们一个新的节点就添加好了, 但是我们发现总共是7个节点,其中的六个互为住备,但有一个是有主,没有备,所以我们需要在为该节点添加一个备份节点。我们在创建一个实例,端口号为7008,启动以后我们只命令./redis-trib.rb add-node --slave127.0.0.1:7008  127.0.0.1:7007 ,第一个实例127.0.0.1:7008为备份节点,第二个实例127.0.0.1:7007为主节点。然后我们在执行,cluster nodes 命令,就会发现新添加的节点已经作为7007 备份节点开始工作了!

       

 

Redis 集群删除节点

        删除节点也分两种,一种是主节点,一种是从节点。在从节点中,我们没有分配哈希槽,所以删除很简单,我们直接执行./redis-trib.rb del-node 127.0.0.1:700865ee465423c925326a5137668541151b4c37d2d9 有两个参数ip:port  和节点的id。 我们就可以将从节点从集群中删除了。

        

        而在删除主节点的时候,因为在主节点中存放着数据,所以我们在删除之前,要把这些数据迁移走,并且把该节点上的哈希槽分配到其他主节点上。

       我们执行./redis-trib.rb reshard 127.0.0.1:7007,问我们有多少个哈希槽要移走,因为我们这个节点上有1000 个所以我们这里输入1000,如下如所示。

        

        这样期间会询问我们是否要从新分配,我们输入yes。然后就看到7007上的所有节点都被移动到了7001.这样我们就操作完了。然后再执行./redis-trib.rb del-node127.0.0.1:7007 61f786c40bcc170006a440abd7dc773e6dd15a19 ,就会看到7007 端口的实例也被从集群中移除了。

       


        我们进入客户端,看一下集群节点的情况。会看到7007 节点和7008 节点就都被我们移除集群了!   

 

        这篇博客为大家说了集群节点的维护,下一篇文章给大家说一下在程序中我们如何使用redis集群。

2
0
查看评论

高性能网站架构之缓存篇—Redis集群搭建

看过 高性能网站架构之缓存篇--Redis安装配置和高性能网站架构之缓存篇--Redis使用配置端口转发 这两篇文章的,相信你已经对redis有一定的了解,并能够安装上,进行简单的使用了,但是在咱们的实际应用中,使用redis肯定不会使用单机版,不光是redis不能使用单机版,其...
  • zhanghongjie0302
  • zhanghongjie0302
  • 2016-03-09 15:22
  • 16609

高性能网站架构之缓存篇--Redis安装配置

简介      Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案。      Redis从它的许多竞争继承来的三个主要特点:         ...
  • zhanghongjie0302
  • zhanghongjie0302
  • 2016-01-06 00:04
  • 6082

Redis集群动态增删节点

Redis集群动态增删节点
  • l0m0a0
  • l0m0a0
  • 2017-04-09 15:28
  • 69

Redis集群增删节点

Redis集群增删节点
  • chenyuangege
  • chenyuangege
  • 2016-05-27 11:41
  • 214

高性能网站架构设计之缓存篇(4)- Redis 主从复制

转自:http://www.cnblogs.com/zhaoguihua/p/redis-004.html Redis 的主从复制配置非常容易,但我们先来了解一下它的一些特性。 redis 使用异步复制。从 redis 2.8 开始,slave 也会周期性的告诉 master 现...
  • lgq421033770
  • lgq421033770
  • 2016-02-24 09:20
  • 276

架构高性能网站秘笈(三)——浏览器缓存

什么是浏览器缓存?在《架构高性能网站秘笈(二)——动态内容缓存》中我们知道,当不同用户请求相同数据时,动态内容缓存能够避免服务器的重复计算,从而降低用户的等待时间。但如果是同一个用户请求相同的数据,即使服务器能避免重复计算,但仍需将重复的数据传递给浏览器。若使用浏览器缓存,则同一个用户请求相同的数据...
  • u010425776
  • u010425776
  • 2016-04-07 22:17
  • 5248

架构高性能网站秘笈(七)——负载均衡

什么是负载均衡?当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。那么在这个过程中,调度者如何合理分配任务,保证所有后端...
  • u010425776
  • u010425776
  • 2016-04-12 09:37
  • 7460

大型网站架构之系列——死了都要说的缓存

说到缓存,我想大家跟我一样都很兴奋,当我们遭遇网站性能瓶颈的时候,缓存是一剂强心针,也是一粒紧急妈富隆,从而在优化网站 性能方面冠上了第一定律的帽子,我们前年在做淘应用的时候,就遭遇了性能瓶颈,短时间内采用缓存紧急优化,给我们大优化之前争取了 宝贵的时间。   一:...
  • tangtiantian520
  • tangtiantian520
  • 2017-05-09 14:48
  • 70

redis集群动态增加或者删除节点

redis集群动态添加或者删除节点
  • xu470438000
  • xu470438000
  • 2015-01-21 18:49
  • 32205

【高性能MySQL】读书摘录5-第6章、查询性能优化

第6章、查询性能优化 1、慢查询基础:优化数据访问 查询性能低下的最基本的原因是访问的数据太多,对于低效的查询,可以从下面两个步骤来分析: (1)、确认应用程序是否在检索大量超过需要的行,这通常意味着访问了太多的行,但有时候也有可能访问了太多的列。 (2)、确认MySQL服务器层是否在分析大量超过需...
  • ohmygirl
  • ohmygirl
  • 2015-04-26 16:28
  • 1475
    个人资料
    • 访问:415127次
    • 积分:8777
    • 等级:
    • 排名:第2611名
    • 原创:123篇
    • 转载:5篇
    • 译文:1篇
    • 评论:1463条
    最新评论