1、下载redis 安装包,下载地址:http://download.redis.io/releases/redis-5.0.3.tar.gz

2、解压编译, 解压到当前目录tar -zxf /redis-5.0.3.tar.gz ,cd redis-5.0.3/ # 编译 make

3、开始安装,安装到另外一个目录下,命令:make install PREFIX=/usr/local/redis-cluster/redis1,安装后的文件夹里没有redis.conf文件,需要从解压后的文件夹里拷贝过去。

4、安装结束后,修改Redis.conf配置文件参数:
          port 7000 //端口7000,7002,7003
          bind 本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
          daemonize yes //redis后台运行
          pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7001,7002
          cluster-enabled yes //开启集群 把注释#去掉
          cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002
          cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
          appendonly

4、复制6个Redis文件夹分别存放redis的安装文件,并各个配置文件也就是redis.conf文件下的每个端口号

5、分别进入bin文件夹下,启动各个redis服务,启动命令:./redis-server ./redis.conf

6、启动之后,进入Redis解压后的文件夹也就是,redis-5.0.3的那个文件夹,进入src源码目录,执行创建集群分配槽命令:

./redis-cli --cluster create 192.168.1.132:6380 192.168.1.132:6381 192.168.1.132:6382 192.168.1.132:6383 192.168.1.132:6384 192.168.1.132:6385 --cluster-replicas 1 

7、进入其中一个Redis服务,./redis-cli -c -h 192.168.1.132 -p 6380,输入查看集群信息命令,cluster info,如果cluster_state为ok,则搭建成功。

备注:搭建过程中可能出现的错误如下,

        1)如果出现CLUSTERDOWN: hash slot not served,则表示为redis的集群分配槽没有正确执行,Redis的版本不一致,redis老版本的执行命令是使用redis-trib.rb进行创建的,之后已经迁移到了redis-cli下,目前5.0.3的执行命令就是第6条的命令。

        2)如果出现Node 192.168.1.132:6380 is not empty之类的错误信息,则表示为之前配置文件的IP修改了之后,并没有正常运行,需要删除缓存这三个文件appendonly.aof dump.rdb nodes.conf,这些文件是之前执行ip:127.0.0.1时生成的,改为真机ip后在执行并没有生效。删除之后,运行起来后,在用客户端进入该端口Redis服务,运行flushdb命令清空当前数据库。(dump.rdb是由Redis服务器自动生成的 默认情况下 每隔一段时间redis服务器程序会自动对数据库做一次遍历,把内存快照写在一个叫做“dump.rdb”的文件里,这个持久化机制叫做SNAPSHOT。有了SNAPSHOT后,如果服务器宕机,重新启动redis服务器程序时redis会自动加载dump.rdb,将数据库状态恢复到上一次做SNAPSHOT时的状态

       3)升级新的Redis版本需要升级新的gcc编译器,gcc编译器升级命令如下:

 

yum -y install centos-release-scl
                 yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
                 scl enable devtoolset-9 bash
                #scl命令启用只是临时的,新开的会话默认还是原gcc版本。

                #如果要长期使用gcc 9.1的话执行下面的命令即可:
                echo -e "\nsource /opt/rh/devtoolset-9/enable" >>/etc/profile                gcc -v

               之后清除redis之前的编译make distclean
               再重新make