• CentOS7 安装Redis Cluster集群


    上一篇中已经讲到了如何安装单击版Redis,这一篇我们来说下如何安装Cluster,关于哨兵模式这里我就不写文章安装了,有兴趣的同学可以自己去研究,哨兵模式可以在主从模式下在创建三台机器的哨兵集群监控redis主从集群即可。

    本文由于我是在windows上创建的虚拟机,所以是每台机器上部署2个实例,一共三台机器6个实例。生产环境中建议都是说在6台机器上去搭建,至少3台机器,保证,每个master都跟自己的slave不在同一台机器上,如果是6台自然更好。

    1,准备条件

    首先需要在三台机器上分别安装Redis,安装教程可参考:CentOS7 安装Redis 单机版,到文章的第三步结束即可

    安装redis出现上面的截图后就说明redis已经安装完毕。

    下面我会把第四部的配置稍微改动一下 

    2,修改配置文件

    这里同上一篇文章中的第四部是一样的,不过是多增加了几个配置和目录而已,一下步骤按一台机器为例,其他机器只需要更改7001端口号即可,别的不需要更改

    (1)redis utils目录下,有个redis_init_script脚本
    (2)将redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_7001,7001是我们希望这个redis实例监听的端口号
    (3)修改redis_7001脚本的第6行的REDISPORT,设置为相同的端口号(默认就是7001)
    (4)创建两个目录:

    • /etc/redis(存放redis的配置文件)
    • /var/redis/7001(存放redis的持久化文件)

    (5)修改redis配置文件(默认在根目录下,redis.conf),拷贝到/etc/redis目录中,修改名称为7001.conf
    (6)修改redis.conf中的部分配置

    • port 7001
    • cluster-enabled yes
    • cluster-config-file /etc/redis-cluster/node-7001.conf
    • cluster-node-timeout 15000
    • daemonize yes
    • pidfile /var/run/redis_7001.pid
    • dir /var/redis/7001
    • logfile /var/log/redis/7001.log
    • bind 192.168.32.128(这里需要改成自己虚拟机的ip即可
    • appendonly yes

    (7)创建上面配置中的目录

    • mkdir -p /etc/redis-cluster
    • mkdir -p /var/log/redis

    (8)启动redis执行

    • cd /etc/init.d
    • chmod 777 redis_7001
    • ./redis_7002 start

    (9)确认redis进程是否启动,ps -ef | grep redis

    重复上面的步骤,分别做出6份配置文件:

    7001.conf,7002.conf,7003.conf,7004.conf,7005.conf,7006.conf

    redis_7001,redis_7002,redis_7003,redis_7004,redis_7005,redis_7006

    分别重启后先检查下redis状态是不是6个服务都全部启动。

    3,创建集群

     这里安装集群需要Ruby命令,因此我们需要安装下Ruby,在集群机器中随便找一台执行即可

    • yum install ruby //安装ruby
    • yum install rubygems //安装rubygems,最新版本会自动安装

    接下来我们需要安装Redis的Ruby接口程序

    • gem install redis

    执行完成之后会发现报错了 ,redis需要的Ruby版本最低是2.2.2,但是CentOS7 yum库中ruby的版本支持到 2.0.0,可gem 安装redis需要最低是2.2.2,采用rvm来更新ruby:

    1. 安装RVM
      1. curl -L get.rvm.io | bash -s stable 
      2. find / -name rvm -print(此时可能出现问题)
      3. 如果没有出现上面的信息,可参考:https://blog.csdn.net/lixwjava/article/details/50408070,需要执行的命令如下
      4. curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -  
        curl -L get.rvm.io | bash -s stable  
        find / -name rvm.sh  
        source /etc/profile.d/rvm.sh  
        rvm requirements  

        上面命令执行完毕后,继续执行 find / -name rvm -print,就可以看到上面的正确的截图了

    2. 使刚安装的rvm立即生效
      1. source /usr/local/rvm/scripts/rvm
    3. 查看rvm库中ruby版本
      1. rvm list known
    4. 安装一个ruby版本
      1. rvm install 2.4.1

    5. 使用一个ruby版本
      1. rvm use 2.4.1
    6. 设置默认版本
      1. rvm use 2.4.1 --default
    7. 卸载一个已知版本
      1. rvm remove 版本号
    8. 查看ruby版本
      1. ruby --version
    9. 到此为止ruby的新版本就安装完毕了,下面让我继续执行安装redis  执行命令 
      gem install redis

    redis cluster 集群继续

    cp /usr/local/java/redis-4.0.9/src/redis-trib.rb /usr/local/bin/
    redis-trib.rb create --replicas 1 192.168.32.128:7001 192.168.32.128:7002 192.168.32.130:7003 192.168.32.130:7004 192.168.32.131:7005 192.168.32.131:7006
    --replicas: 每个master有几个slave,输入后可以得到下面的信息
    [root@linux2 bin]# redis-trib.rb create --replicas 1 192.168.32.128:7001 192.168.32.128:7002 192.168.32.130:7003 192.168.32.130:7004 192.168.32.131:7005 192.168.32.131:7006
    >>> Creating cluster
    >>> Performing hash slots allocation on 6 nodes...
    Using 3 masters:
    192.168.32.128:7001
    192.168.32.130:7003
    192.168.32.131:7005
    Adding replica 192.168.32.130:7004 to 192.168.32.128:7001
    Adding replica 192.168.32.131:7006 to 192.168.32.130:7003
    Adding replica 192.168.32.128:7002 to 192.168.32.131:7005
    M: f18c22678ff0d3e3d17bc07baddab16228d07ccb 192.168.32.128:7001
       slots:0-5460 (5461 slots) master
    S: 98a4697532e570a8dee1a419e4f24a31a373aae3 192.168.32.128:7002
       replicates f2f14871b8fe57eeddb3a872c5e515a34d9159c1
    M: a2b5695b041c36b7fcf560225e2444a421b731ea 192.168.32.130:7003
       slots:5461-10922 (5462 slots) master
    S: 7e39b67d363dc512a79e800bb566c3340265d457 192.168.32.130:7004
       replicates f18c22678ff0d3e3d17bc07baddab16228d07ccb
    M: f2f14871b8fe57eeddb3a872c5e515a34d9159c1 192.168.32.131:7005
       slots:10923-16383 (5461 slots) master
    S: ae5a841eea817745ef3a1ee5cf7cfc991c323f0d 192.168.32.131:7006
       replicates a2b5695b041c36b7fcf560225e2444a421b731ea
    Can I set the above configuration? (type 'yes' to accept): //这里如果同意上面的分配的话请输入yes
    Can I set the above configuration? (type 'yes' to accept): yes
    >>> Nodes configuration updated
    >>> Assign a different config epoch to each node
    >>> Sending CLUSTER MEET messages to join the cluster
    Waiting for the cluster to join..
    >>> Performing Cluster Check (using node 192.168.32.128:7001)
    M: f18c22678ff0d3e3d17bc07baddab16228d07ccb 192.168.32.128:7001
       slots:0-5460 (5461 slots) master
       1 additional replica(s)
    M: a2b5695b041c36b7fcf560225e2444a421b731ea 192.168.32.130:7003
       slots:5461-10922 (5462 slots) master
       1 additional replica(s)
    M: f2f14871b8fe57eeddb3a872c5e515a34d9159c1 192.168.32.131:7005
       slots:10923-16383 (5461 slots) master
       1 additional replica(s)
    S: 98a4697532e570a8dee1a419e4f24a31a373aae3 192.168.32.128:7002
       slots: (0 slots) slave
       replicates f2f14871b8fe57eeddb3a872c5e515a34d9159c1
    S: 7e39b67d363dc512a79e800bb566c3340265d457 192.168.32.130:7004
       slots: (0 slots) slave
       replicates f18c22678ff0d3e3d17bc07baddab16228d07ccb
    S: ae5a841eea817745ef3a1ee5cf7cfc991c323f0d 192.168.32.131:7006
       slots: (0 slots) slave
       replicates a2b5695b041c36b7fcf560225e2444a421b731ea
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.

    到这里集群就创建完毕了

    [root@linux2 bin]# redis-trib.rb check 192.168.32.128:7001 //随时可以用此命令来查看集群的状态
    >>> Performing Cluster Check (using node 192.168.32.128:7001)
    M: f18c22678ff0d3e3d17bc07baddab16228d07ccb 192.168.32.128:7001
       slots:0-5460 (5461 slots) master
       1 additional replica(s)
    M: a2b5695b041c36b7fcf560225e2444a421b731ea 192.168.32.130:7003
       slots:5461-10922 (5462 slots) master
       1 additional replica(s)
    M: f2f14871b8fe57eeddb3a872c5e515a34d9159c1 192.168.32.131:7005
       slots:10923-16383 (5461 slots) master
       1 additional replica(s)
    S: 98a4697532e570a8dee1a419e4f24a31a373aae3 192.168.32.128:7002
       slots: (0 slots) slave
       replicates f2f14871b8fe57eeddb3a872c5e515a34d9159c1
    S: 7e39b67d363dc512a79e800bb566c3340265d457 192.168.32.130:7004
       slots: (0 slots) slave
       replicates f18c22678ff0d3e3d17bc07baddab16228d07ccb
    S: ae5a841eea817745ef3a1ee5cf7cfc991c323f0d 192.168.32.131:7006
       slots: (0 slots) slave
       replicates a2b5695b041c36b7fcf560225e2444a421b731ea
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.
  • 相关阅读:
    【JAVA】空指针异常
    【JAVA】分隔字符串的小技巧
    【JAVA】imageio异常:不支持图像类型
    权限设计“终极”解决方案
    一直困扰我的.net 2.0和,net 1.1同时运行的问题解决了
    乱谈成本三
    SandBar学习笔记
    不是吧!怎么这样
    学习Java的相关知识
    代码自动生成工具的补充
  • 原文地址:https://www.cnblogs.com/blueskyli/p/9084548.html
Copyright © 2020-2023  润新知