您的位置:首页 > 数据库 > Redis

redis集群 实战

2017-02-16 17:49 106 查看
标签:redis集群
redis 集群维护

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://navyaijm.blog.51cto.com/4647068/1706715

一、说明

redis 3.0集群功能出来已经有一段时间了,目前最新稳定版是3.0.5,我了解到已经有很多互联网公司在生产环境使用,比如唯品会、美团等等,刚好公司有个新项目,预估的量单机redis无法满足,开发又不想在代码层面做拆分,所以就推荐他们尝试一下redis集群,下面做了一些相关笔记,以备后用

二、环境

1、redis节点

2、redis版本

三、安装配置

1、安装redis

2、安装ruby及ruby的redis模块

3、内核调优

4、建立目录

5、撰写redis配置文件(cp配置文件注意修改端口)

6、启动服务

7、初始化集群

8、查看集群状态

PS:

redis-trib.rb是一个ruby工具,封装了redis集群的一些命令,用这个工具操作集群非常方便,比如上面初始化集群,查看集群状态,还有添加、删除节点,迁移slot等等功能

四、redis集群维护

A、场景1

线上的集群已经有瓶颈,集群需要扩容,比如我们已经准备了一主一从(10.10.2.85:6302、10.10.2.85:6303),如下:

1、添加一个主节点

10.10.2.85:6302是要加的新节点,10.10.2.70:6300是集群中已存在的任意节点

2、给主节点添加从节点

--slave 指定要加的是从节点,--master-id 指定这个从节点的主节点ID,10.10.2.85:6303是需要新加的从节点,10.10.2.70:6300是集群已存在的任意节点

3、迁移一些slot给新节点

B、场景二

上面的例子是集群扩容,相对的,由于各种原因集群可能也需要缩容,下面的例子把上文扩容的节点下线,步骤如下:

1、迁移这个节点的slot到其他节点(有slot的节点是不可以直接下线的)

2、然后查看10.10.2.85:6302这个maser上已经没有slot了

3、下线slave节点

4、下线master节点

C、场景三

集群中一个节点的master挂掉,从节点提升为主节点,还没有来的急给这个新的主节点加从节点,这个新的主节点就又挂掉了,那么集群中这个节点就彻底不可以用了,为了解决这个问题,我们至少保证每个节点的maser下面有两个以上的从节点,这样一来,需要的内存资源或者服务器资源就翻倍了,有没有一个折中的方法呢,答案是肯定的,还节点上文配置文件中的cluster-migration-barrier参数不,我们只需要给集群中其中一个节点的master挂多个从库,当其他节点的master下没有可用的从库时,有多个从库的master会割让一个slave给他,保证整个集群的可用性

1、给10.10.2.70:6300 10.10.2.70:6301 这组节点下面加一个从库10.10.2.85:6302

2、把10.10.2.71:6300 10.10.2.71:6301这组的从节点停掉

3、查看10.10.2.85:6302这个节点是否成为10.10.2.71:6300的从库

五、cluster相关命令

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: