同机器与不同机器redis集群

Posted jiangfb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同机器与不同机器redis集群相关的知识,希望对你有一定的参考价值。

此文为另外以为大神原创由于没有找到分享功能  粘贴复制到此  原地址为https://blog.csdn.net/u012042021/article/details/72818759

一、同机器下的集群搭建:

      1,创建redis实例统一存放的文件夹——在/usr/local路径下创建cluster文件夹,命令:mkdir cluster

           技术分享图片

 

     2,创建每个实例单独存放的文件夹——在cluster文件夹下创建6个文件夹,分别为7001,7002,7003,7004,7005,7006,

           命令:mkdir 7001 7002 7003 7004 7005 7006

           技术分享图片

 

    3,将下载的redis-3.2.8.tar.gz上传到虚拟机的/usr/local/redis(前提先建一个redis)下,并解压,命令:tar –zxvf redis-3.2.8.tar.gz,得到redis-3.2.8包

          技术分享图片

          技术分享图片

 

     4,安装gcc,执行yum -y install gcc gcc-c++ libstdc++-devel和make CFLAGS="-march=x86-64"两次输入y继续安装,安装完成后然后进入redis-3.2.8包,执行make  install   PREFIX=/usr/local/redis2命令

     5,进入cd /usr/local/redis2c,复制bin文件夹到之前创建的6个包下面(/usr/local/cluster/700*),

          如:cp -r bin /usr/local/cluster/7001

          技术分享图片

 

         复制redis-3.2.8下的redis.conf到/usr/local/cluster下面,并进入该目录

         技术分享图片

 

  6,修改redis.conf文件,修改内容如下

        1)屏蔽限制本地访问,在bind 127.0.0.1之前加#(同机器下,可能不需要改,未做测试)

              技术分享图片

 

       2)protected-mode后的yes改为no

             技术分享图片

 

      3)daemonize后的no改为yes

            技术分享图片

 

      4)去掉cluster-enabled yes前面的#(按Esc键退出i编辑模式,输入/,再输入cluster-enabled,回车,就可以快速找到)

            技术分享图片

 

     5)去掉#方法同4)

           技术分享图片

 

    6)  port后的端口号改6次,每次都改成与之前创建的6个包名一致,如7001,每改一次,将redis.conf文件,复制到对应的包下,如7001(端口只要不冲突可以随便改,这里 为了方便管理改成和包名一致)

           技术分享图片

           技术分享图片

 

 

 

 

   7,分别启动6个redis实例,并查看

          技术分享图片

 

   8,进入cd /usr/local/redis/redis-3.2.8/src下,执行./redis-trib.rb  create  --replicas  1   127.0.0.1:7001  127.0.0.1:7002 127.0.0.1:7003  127.0.0.1:7004  127.0.0.1:7005  127.0.0.1:7006,报了一个错,如下

           技术分享图片

 

 

 

          需要安装:

                      1)ruby的环境,执行命令:yum install ruby

                      2)rubygems组件,执行命令:yum install rubygems

                      3)redis和ruby的接口,执行命令:gem install redis

         如果报node 192.168.133.xx:7001 is not empty之类的错误说明集群未正确关闭或是存有日志文件则

         针对错误信息执行集群修复命令:./redis-trib.rb fix 192.168.133.128:7001

 

     9,安装完成后再次执行,启动命令,并输入yes并回车

           技术分享图片

 

 

     10,启动成功

           技术分享图片

 

 

     11,做下测试,随便进入一个redis实例,如进入cd /usr/local/cluster/7001下执行./bin/redis-cli -c -p 7001

             技术分享图片

 

 

 

二、不同机器下的集群搭建:

   注意: redis的安装步骤与同机器下一致,这里只讲解个别不同配置的修改

    1,首先另外创建三个虚拟机(这里为方便演示只创建3个)

           技术分享图片

 

     2,每台都设置固定ip  (不会设置,可以参考:http://blog.csdn.net/u012042021/article/details/72781888)

             node1设为192.168.133.128;

            node2设为192.168.133.129;

            node3设为192.168.133.130

 

    3,每台都创建好两个redis实例(与同机器一样),分别为:

              node1下7001、7002;

              node2下7003、7004;

              node3下7005、7006

 

     4,分别修改这3台机器下对应的2个redis实例的redis.conf文件绑定对应机器的ip,如node1下的两个redis配置改成 bind 192.168.133.128,保存退出

           技术分享图片

      注意:改好之后,要关闭每台虚拟机的防火墙,执行命令:service iptables stop——立即生效,永久关闭防火墙执行命令:chkconfig iptables off——重启生效

      5,分别启动这6个实例

          node1:

          技术分享图片

          node2:

          技术分享图片

         node3:

       技术分享图片

 

 

 

    6,进入node2 (随便那台都行) cd /usr/local/redis/redis-3.2.8/src下(你的解压目录),执行
./redis-trib.rb  create  --replicas  1   192.168.133.128:7001  192.168.133.128:7002 192.168.133.129:7001  192.168.133.129:7002  192.168.133.130:7001  192.168.133.130:7002

 

 

       7,所有组件都按同机器下安装一致,仍然报了一个错

              技术分享图片

 

 

         8,解决方法有两种,官方推荐使用第二种:

                     1)分别删除实例包下的三个文件,再重新启动

                           技术分享图片

                      2)针对错误信息执行集群修复命令:./redis-trib.rb fix 192.168.133.128:7001

 

 

            启动与同机器一致

           技术分享图片

 

           技术分享图片

 

     9,测试,随便进入一台机器,如node3,随便进入一个redis实例,如7002,

           进行set、get测试

          技术分享图片

 

        再进入另一台机器,如node1,检查get

       技术分享图片

 

      10,结束,多谢大家阅读。

以上是关于同机器与不同机器redis集群的主要内容,如果未能解决你的问题,请参考以下文章

使用docker搭建redis集群

Linux Redis集群搭建与集群客户端实现

Redis的几种高可用集群方案

Redis3.2.5 集群搭建

redis集群搭建

Redis(1.11)Redis cluster 分布式集群搭建