Redis主从复制和集群配置系列之三

Redis技术学习 https://www.itkc8.com

一、本文目的

       演示在一台机器上搭建3主3从的redis集群,通过演示了解redis集群的搭建,使用和注意事项    

 

二、搭建说明

       1、同一台机器搭建3主3从的伪集群

       2、使用端口7111~7116,集群端口为端口前+1,如果使用端口7111,则其集群通信端口为17111,

             redis.config的配置如下:

 daemonizeportpidfilelogfilecluster-enabledcluster-config-filecluster-node-timeout
7111yes7111/var/run/redis7111.pid"redis7111.log"yesnodes-7111.conf5000
7112yes7112/var/run/redis7112.pid"redis7112.log"yesnodes-7112.conf5000
7113yes7113/var/run/redis7113.pid"redis7113.log"yesnodes-7113.conf5000
7114yes7114/var/run/redis7114.pid"redis7114.log"yesnodes-7114.conf5000
7115yes7115/var/run/redis7115.pid"redis7115.log"yesnodes-7115.conf5000
7116yes7116/var/run/redis7116.pid"redis7116.log"yesnodes-7116.conf5000

           3、需要打开7111~7116、17111~17116一共12个端口

 

三、搭建过程

         1、安装搭建说明修改配置文件及打开所有端口,并启动6个redis               

          2、创建redis集群是使用ruby命令,故需要安装以下软件

1

2

3

4

5

6

7

8

9

安装 ruby 和 rubygems(注意: 需要 ruby 的版本在 1.8.7 以上)

# yum install ruby rubygems

 

检查 ruby 版本:

# ruby -v

ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]

 

gem 安装 redis ruby 接口:

# gem install redis

         3、执行创建集群的命令(可在任何一个redis的src目录下执行)

                 a) redis-trib.rb  创建集群的rube命令
                 b) create 创建集群

                 c)  replicas 每个master包含一个slaver

                 d) 192.168.146.131:7111 每个redis实例的ip+端口,每个实例根据空格分开

1

2

3

cd /usr/local/redis7111/src

 

./redis-trib.rb create replicas 1 192.168.146.131:7111 192.168.146.131:7112 192.168.146.131:7113 192.168.146.131:7114 192.168.146.131:7115 192.168.146.131:7116

 

            4、系统分配Master、Slaver集群关系

                   5、Slot插槽分配结果

 

 

四、集群的测试

              1、设置key 

                2、 在另外一个集群机器上读取刚设置的key

                  3、查看集群间的关系、Master/Slaver之间的关系

 

 

五、总结

  1. 集群中各台机器的配置信息一致,Master/Slaver关系是在创建集群时由系统分配
  2. redis集群公用16384个slot,分配给不同的Master
  3. 每个key最终都会位于某一个slot,读取key时会先转向到某一个slot,然后读取其中的值
  4. 新增集群或减少集群(如新增或减少Master)会重新分配slot
  5. 集群的Master/Slaver不知道怎么做容灾,自动切换等,等待进一步研究

 

六、参考资料

  1.  http://blog.csdn.net/zhu_tianwei/article/details/44928779
  2. http://blog.csdn.net/zhu_tianwei/article/details/45009647
  3. http://5i.io/redis-3-0-cluster-configuration/

一、本文目的

       介绍集群的基本情况及常用命令

    

二、集群的特点

 

 3、集群优缺点

 

三、集群客户端命令(redis-cli -c -p port)

集群
cluster info :打印集群的信息
cluster nodes :列出集群当前已知的所有节点( node),以及这些节点的相关信息。
节点
cluster meet <ip> <port> :将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。
cluster forget <node_id> :从集群中移除 node_id 指定的节点。
cluster replicate <node_id> :将当前节点设置为 node_id 指定的节点的从节点。
cluster saveconfig :将节点的配置文件保存到硬盘里面。
槽(slot)
cluster addslots <slot> [slot ...] :将一个或多个槽( slot)指派( assign)给当前节点。
cluster delslots <slot> [slot ...] :移除一个或多个槽对当前节点的指派。
cluster flushslots :移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。
cluster setslot <slot> node <node_id> :将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给
另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。
cluster setslot <slot> migrating <node_id> :将本节点的槽 slot 迁移到 node_id 指定的节点中。
cluster setslot <slot> importing <node_id> :从 node_id 指定的节点中导入槽 slot 到本节点。
cluster setslot <slot> stable :取消对槽 slot 的导入( import)或者迁移( migrate)。

cluster keyslot <key> :计算键 key 应该被放置在哪个槽上。
cluster countkeysinslot <slot> :返回槽 slot 目前包含的键值对数量。
cluster getkeysinslot <slot> <count> :返回 count 个 slot 槽中的键  

 

四、集群中Master的下线及恢复

1、Master下线后,其对应的Slaver节点会自动变为Master节点

 

2、原来的Master重启后变成Slaver节点,并是原来Master节点的Slaver节点

 

Redis技术学习 https://www.itkc8.com

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值