Redis3.0.1集群环境搭建

需要安装(ruby-2.2.2.tar.gz/rubygems/zlib/openssl/redis-3.2.1.gem)

      1、准备工作:需要安装ruby,通过源代码安装
      tar -zxvf ruby-2.2.2.tar.gz
      mkdir -p /usr/local/ruby
      cd ruby-2.2.2 进入到解压包下面
      ./configure -prefix=/usr/local/ruby
      make && make install
      安装完毕后,vi /etc/profile  追加
      export PATH=/usr/local/ruby/bin:$PATH
      执行
      source /etc/profile

       2、执行ruby -v 可以查看是否安装成功
       
       3、安装rubygems
        tar -zxvf rubygems-2.4.7.tgz
        cd rubygems-2.4.7
        ruby setup.rb
        执行gem -v 可以查看是否安装成功

       4、安装zlib
       tar -zxvf zlib-1.2.6.tar.gz
       cd zlib-1.2.6
       ./configure
       make && make install

      5、安装 openssl
        tar -zxvf openssl-1.0.1k.tar
        cd openssl-1.0.1k
        ./config
        make && make install

     6、安装rbuy 与 redis的接口(将文件redis-3.2.1.gem上传到/soft目录下)
        gem install -l /soft/redis-3.2.1.gem
         (如果执行本操作报错,此时需要将ruby重新安装编译,即第1步需要重新执行)
       


    1.要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点。
      这里创建3个主节点、3个从节点(大型系统可以使一主多从),IP规划
      192.168.62.153 7001   主
      192.168.62.153 7002   从
      192.168.62.154 7003   主
      192.168.62.154 7004   从
      192.168.62.155 7005   主
      192.168.62.155 7006   从
      
    2.将安装包上传到各个服务器上,在所有主从节点下解压后执行
      #make
      #make install
    3、创建集群所需要的目录(7001/7002在153机上执行,7003/7004在154机器上,7005/7006在154机器上)
       在真实的商用环境上,一般在6台不同的机器上执行。
      mkdir -p /usr.local/cluster
      cd  /usr.local/cluster
      mkdir 7001
      mkdir 7002
      mkdir 7003
      mkdir 7004
      mkdir 7005
      mkdir 7006
  4、选择其中一台机器修改配置文件(以153为例子)
       cd /soft/redis-cluster-153.master/
       vi redis.conf
      修改文件中的如下内容
     port 7001
     daemonize yes
     cluster-enabled yes
     cluster-config-file nodes.conf
     cluster-node-timeout 5000
     appendonly yes
     ##修改完redis.conf配置文件中的这些配置项之后把这个配置文件分别拷贝到7001/7002/7003/7004/7005/7006目录下面
     cp redis.conf /usr.local/cluster/7001
     cp redis.conf /usr.local/cluster/7002
      ##注意:拷贝完成之后要修改7001/7002/7003/7004/7005目录下面redis.conf文件中的port参数,分别改为对应的文件夹的名称
  5、以153机器为例子,在153上启动2个redis服务,
      cd /usr.local/cluster/7001
      redis-server redis.conf
      cd /usr.local/cluster/7002
      redis-server redis.conf
      此时,在153机器上启动了2个redis服务
      root     25164     1  0 23:27 ?        00:00:00  redis-server *:7001 [cluster]
      root     25170     1  0 23:28 ?        00:00:00  redis-server *:7002 [cluster]
   6、在其他机器上重复执行3-4-5的操作.
     最终将redis集群中的所有节点全部启动
       root     25164     1  0 23:27 ?        00:00:00  redis-server *:7001 [cluster]
       root     25170     1  0 23:28 ?        00:00:00  redis-server *:7002 [cluster]
       root     25395     1  3 23:36 ?        00:00:00  redis-server *:7003 [cluster]
       root     25403     1  0 23:36 ?        00:00:00  redis-server *:7004 [cluster]
       root     26584     1  1 23:42 ?        00:00:00  redis-server *:7005 [cluster]
       root     26588     1  0 23:42 ?        00:00:00  redis-server *:7006 [cluster]
   7、创建集群,在任意一台服务器上执行,以153为例
       # cd /soft/redis-cluster-153.master/src/
       # ./redis-trib.rb  create --replicas 1 192.168.62.153:7001 192.168.62.153:7002 192.168.62.154:7003 192.168.62.154:7004 192.168.62.155:7005 192.168.62.155:7006

 --replicas 1,代表为每个主节点创建一个从节点,在商用环境下,比如30台机器,可以配置3,每个主节点有3个从。    


      输入yes,则创建成功,系统会自动匹配主机、从机。
    8、查看集群中机器ID、主从、及hash槽情况:./redis-trib.rb check  192.168.62.155:7005 可以查看集群中机器的情况。
         对数据重新分片: ./redis-trib.rb reshard 192.168.62.154:7004   
         列出集群中的所有主节点:redis-cli -p 7001 cluster nodes | grep master
          让某个主节点崩溃,测试故障转移:redis-cli -h 192.168.62.154 -p 7003 debug segfault

      9、增加主节点到集群
         加入新节点:   ./redis-trib.rb add-node  192.168.62.152:7007 192.168.62.153:7001
                                                            7007是新机器,7001是集群中的某一台机器
         需要注意的是此时新节点不能成为真正的主节点,需要进行重新分片才可以。
                             ./redis-trib.rb reshard 192.168.62.152:7007
                       
          1)、自动分片程序会询问移动几个hash槽,如果要保证数据的均匀,此时应该是16384/N,
                   N代表包括当前主机的所有希望成为主节点的数量。
          2)、会询问从哪些节点移动数据,此时可以选择某些节点的ID,也可以直接选择all,从所有主节点,这样数据就会均分。
      10、增加从节点到集群
             ./redis-trib.rb add-node --slave 192.168.62.152:7008 192.168.62.153:7001
             此时没有指定从从节点的主节点,一般会自动选择一个,也可以指定主节点,如下:
             ./redis-trib.rb add-node --slave --master-id 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 192.168.62.152:7008 192.168.62.153:7001

      11、删除一个节点:
            1)、从节点删除:d598f4cf29cc4fea3616a00a0e707f71a7777cf1是指被删除的redis的ID
                  ./redis-trib.rb del-node 192.168.62.153:7001  d598f4cf29cc4fea3616a00a0e707f71a7777cf1
            2)、主节点删除,此时应该确保主节点数据为空,如果不为空,需要将该节点的数据重新分片到其他节点上
                  执行./redis-trib.rb reshard  192.168.62.152:7007 (被删除的主节点,先进行数据迁移,到其他主节点上)
              

   12、连接集群中的机器命令
          redis-cli -c -h 192.168.62.153 -p 7001

    13、修改集群:redis-trib.rb fix

    14、集群相关命令:通过redis-cli -c -p 的命令后进行查看
          CLUSTER NODES :集群信息,包括了节点ID,主从关系
          CLUSTER INFO:查看集群是否健康
          CLUSTER MEET <ip> <port> 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。  
          CLUSTER FORGET <node_id> 从集群中移除 node_id 指定的节点。 
          CLUSTER REPLICATE <node_id> 将当前节点设置为 node_id 指定的节点的从节点。
          CLUSTER KEYSLOT <key> 计算键 key 应该被放置在哪个槽上。 
          CLUSTER COUNTKEYSINSLOT <slot> 返回槽 slot 目前包含的键值对数量。  

   集群注意点:集群中低于一半的集群挂了,整个集群将对外停止服务。
                       部署的时候,建议将主节点,设置为内存型,将从节点设置为固化存储型。
                       主机挂了,从机会自动选举成为主机。
   部署方式 : 主(哈希槽) ------- 主(哈希槽)  ------- 主(哈希槽)
                 从-从-从             从-从-从                从-从-从
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值