• Redis集群(五):集群搭建


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

    二、搭建说明
           1、同一台机器搭建3主3从的伪集群
           2、使用端口7111~7116,集群端口为端口前+1,如果使用端口7111,则其集群通信端口为17111,
                 redis.config的配置如下:

    daemonizeportpidfilelogfilecluster-enabledcluster-config-filecluster-node-timeout
    7111yes 7111 /var/run/redis7111.pid"redis7111.log"yesnodes-7111.conf5000
    7112 yes 7112 /var/run/redis7112.pid "redis7112.log" yes nodes-7112.conf 5000
    7113 yes 7113 /var/run/redis7113.pid "redis7113.log" yes nodes-7113.conf 5000
    7114 yes 7114 /var/run/redis7114.pid "redis7114.log" yes nodes-7114.conf 5000
    7115 yes 7115 /var/run/redis7115.pid "redis7115.log" yes nodes-7115.conf 5000
    7115 yes 7116 /var/run/redis7116.pid "redis7116.log" yes nodes-7116.conf 5000
               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不知道怎么做容灾,自动切换等,等待进一步研究

    六、参考资料


     
     




  • 相关阅读:
    svn使用教程
    事务的隔离级别--全网最详细
    idea的java类图标C不见,取而代之是J标识,且写代码无提示
    text .global_start 和_start
    transformClassesWithDexForDebug
    RxJava基本流程和lift源码分析
    Rxlifecycle(三):坑
    Rxlifecycle(二):源码解析
    RxJava操作符之Share, Publish, Refcount
    Rxlifecycle(一):使用
  • 原文地址:https://www.cnblogs.com/gossip/p/5993401.html
Copyright © 2020-2023  润新知