zoukankan      html  css  js  c++  java
  • redis-5.0.3集群搭建

    首先部署redis-5.0.3,请参考我的另一篇文章

    https://www.cnblogs.com/djlsunshine/p/10592174.html

    启动redis服务

    # redis-server /root/redis-5.0.3/redis.conf

    [root@localhost ~]# redis-server /root/redis-5.0.3/redis.conf
    2753:C 25 Mar 2019 22:58:01.274 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    2753:C 25 Mar 2019 22:58:01.274 # Redis version=5.0.3, bits=64, commit=00000000, modified=0, pid=2753, just started
    2753:C 25 Mar 2019 22:58:01.274 # Configuration loaded

    查看进程

    # ps aux | grep redis

    [root@localhost ~]# ps aux | grep redis
    root       2754  0.0  0.4 153828  7716 ?        Ssl  22:58   0:00 redis-server 192.168.2.80:6379
    root       2759  0.0  0.0 112644   952 pts/1    S+   22:58   0:00 grep --color=auto redis

    创建6个节点

    # mkdir cluster-test

    # cd cluster-test/

    # mkdir 7000 7001 7002 7003 7004 7005

    [root@localhost redis-5.0.3]# mkdir cluster-test
    [root@localhost redis-5.0.3]#
    [root@localhost redis-5.0.3]# ls
    00-RELEASENOTES  cluster-test  COPYING  dump.rdb  Makefile   README.md   runtest          runtest-sentinel  src    utils
    BUGS             CONTRIBUTING  deps     INSTALL   MANIFESTO  redis.conf  runtest-cluster  sentinel.conf     tests
    [root@localhost redis-5.0.3]#
    [root@localhost redis-5.0.3]# cd cluster-test/
    [root@localhost cluster-test]#
    [root@localhost cluster-test]# mkdir 7000 7001 7002 7003 7004 7005
    [root@localhost cluster-test]# ls
    7000  7001  7002  7003  7004  7005

     分别在这6个节点文件夹下写入redis配置文件

    以节点7000为例

    port 7000                          //端口7000,7002,7003
    daemonize yes                      //redis后台运行
    bind 192.168.2.80                  //设置节点的IP
    requirepass 123456                 //设置连接节点的密码
    appendfilename "appendonly.aof"    //aof模式持久化文件的名字(appendonly默认是no,yes就是打开aof持久化)
    pidfile /var/run/redis_7000.pid    //pidfile文件对应7000,7002,7003
    cluster-enabled yes                //开启集群
    cluster-config-file nodes_7000.conf    //集群的配置  配置文件首次启动自动生成 7000,7001,7002
    cluster-node-timeout 5000              //请求超时  设置5秒够了
    appendonly yes                       //aof日志开启  有需要就开启,它会每次写操作都记录一条日志

    启动各节点

    [root@localhost ~]# redis-server redis-5.0.3/cluster-test/7000/redis.conf
    3543:C 26 Mar 2019 19:02:32.393 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    3543:C 26 Mar 2019 19:02:32.393 # Redis version=5.0.3, bits=64, commit=00000000, modified=0, pid=3543, just started
    3543:C 26 Mar 2019 19:02:32.393 # Configuration loaded
    [root@localhost ~]# redis-server redis-5.0.3/cluster-test/7001/redis.conf
    3548:C 26 Mar 2019 19:02:37.603 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    3548:C 26 Mar 2019 19:02:37.603 # Redis version=5.0.3, bits=64, commit=00000000, modified=0, pid=3548, just started
    3548:C 26 Mar 2019 19:02:37.603 # Configuration loaded
    [root@localhost ~]# redis-server redis-5.0.3/cluster-test/7002/redis.conf
    3553:C 26 Mar 2019 19:02:41.394 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    3553:C 26 Mar 2019 19:02:41.394 # Redis version=5.0.3, bits=64, commit=00000000, modified=0, pid=3553, just started
    3553:C 26 Mar 2019 19:02:41.394 # Configuration loaded
    [root@localhost ~]# redis-server redis-5.0.3/cluster-test/7003/redis.conf
    3558:C 26 Mar 2019 19:02:44.487 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    3558:C 26 Mar 2019 19:02:44.487 # Redis version=5.0.3, bits=64, commit=00000000, modified=0, pid=3558, just started
    3558:C 26 Mar 2019 19:02:44.487 # Configuration loaded
    [root@localhost ~]# redis-server redis-5.0.3/cluster-test/7004/redis.conf
    3574:C 26 Mar 2019 19:09:26.168 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    3574:C 26 Mar 2019 19:09:26.168 # Redis version=5.0.3, bits=64, commit=00000000, modified=0, pid=3574, just started
    3574:C 26 Mar 2019 19:09:26.168 # Configuration loaded
    [root@localhost ~]#
    [root@localhost ~]# redis-server redis-5.0.3/cluster-test/7005/redis.conf
    3579:C 26 Mar 2019 19:09:31.677 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    3579:C 26 Mar 2019 19:09:31.677 # Redis version=5.0.3, bits=64, commit=00000000, modified=0, pid=3579, just started
    3579:C 26 Mar 2019 19:09:31.677 # Configuration loaded
    [root@localhost ~]#

    查看进程信息

    [root@localhost ~]# ps aux | grep redis
    root       2754  0.2  0.4 153828  7716 ?        Ssl  Mar25   2:29 redis-server 192.168.2.80:6379
    root       3544  0.1  0.4 153828  7676 ?        Ssl  19:02   0:00 redis-server *:7000 [cluster]
    root       3549  0.1  0.4 153828  7680 ?        Ssl  19:02   0:00 redis-server *:7001 [cluster]
    root       3554  0.1  0.4 153828  7676 ?        Ssl  19:02   0:00 redis-server *:7002 [cluster]
    root       3559  0.1  0.4 153828  7676 ?        Ssl  19:02   0:00 redis-server *:7003 [cluster]
    root       3575  0.2  0.4 153828  7680 ?        Ssl  19:09   0:00 redis-server *:7004 [cluster]
    root       3580  0.1  0.4 153828  7680 ?        Ssl  19:09   0:00 redis-server *:7005 [cluster]
    root       3585  0.0  0.0 112644   952 pts/1    R+   19:09   0:00 grep --color=auto redis

    集群创建

    # redis-cli --cluster create 127.0.0.1:7000 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 --cluster-replicas 1

    # redis-cli -a 123456 --cluster create 192.168.2.80:7000 192.168.2.80:7001 192.168.2.80:7002 192.168.2.80:7003 192.168.2.80:7004 192.168.2.80:7005 --cluster-replicas 1

    --cluster-replicas 1(每个创建的主服务器都有一个从服)

    [root@localhost ~]# redis-cli -a 123456 --cluster create 192.168.2.80:7000 192.168.2.80:7001 192.168.2.80:7002 192.168.2.80:7003 192.168.2.80:7004 192.168.2.80:7005 --cluster-replicas 1
    Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
    >>> Performing hash slots allocation on 6 nodes...
    Master[0] -> Slots 0 - 5460
    Master[1] -> Slots 5461 - 10922
    Master[2] -> Slots 10923 - 16383
    Adding replica 192.168.2.80:7003 to 192.168.2.80:7000
    Adding replica 192.168.2.80:7004 to 192.168.2.80:7001
    Adding replica 192.168.2.80:7005 to 192.168.2.80:7002
    >>> Trying to optimize slaves allocation for anti-affinity
    [WARNING] Some slaves are in the same host as their master
    M: 69f17d424b855c3e18265d2c807a7b8e1ad9328d 192.168.2.80:7000
       slots:[0-5460] (5461 slots) master
    M: d59b01f910c2adb972bd380ec07458e1866a248d 192.168.2.80:7001
       slots:[5461-10922] (5462 slots) master
    M: 137f1ccf4be0c6479e76befd6b96a72dd642ce75 192.168.2.80:7002
       slots:[10923-16383] (5461 slots) master
    S: 83bf3a15381bd624669b3e7f964b1ce26a87e619 192.168.2.80:7003
       replicates 137f1ccf4be0c6479e76befd6b96a72dd642ce75
    S: df8c31bc9c417571aa38745349607a366309d208 192.168.2.80:7004
       replicates 69f17d424b855c3e18265d2c807a7b8e1ad9328d
    S: 70193c889ce1ea1a4fbd811c101af3208691264f 192.168.2.80:7005
       replicates d59b01f910c2adb972bd380ec07458e1866a248d
    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.2.80:7000)
    M: 69f17d424b855c3e18265d2c807a7b8e1ad9328d 192.168.2.80:7000
       slots:[0-5460] (5461 slots) master
       1 additional replica(s)
    M: d59b01f910c2adb972bd380ec07458e1866a248d 192.168.2.80:7001
       slots:[5461-10922] (5462 slots) master
       1 additional replica(s)
    S: 70193c889ce1ea1a4fbd811c101af3208691264f 192.168.2.80:7005
       slots: (0 slots) slave
       replicates d59b01f910c2adb972bd380ec07458e1866a248d
    M: 137f1ccf4be0c6479e76befd6b96a72dd642ce75 192.168.2.80:7002
       slots:[10923-16383] (5461 slots) master
       1 additional replica(s)
    S: df8c31bc9c417571aa38745349607a366309d208 192.168.2.80:7004
       slots: (0 slots) slave
       replicates 69f17d424b855c3e18265d2c807a7b8e1ad9328d
    S: 83bf3a15381bd624669b3e7f964b1ce26a87e619 192.168.2.80:7003
       slots: (0 slots) slave
       replicates 137f1ccf4be0c6479e76befd6b96a72dd642ce75
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.

    查看redis监听端口

    # netstat -tnlp | grep redis

    [root@localhost ~]# netstat -tnlp | grep redis
    tcp        0      0 0.0.0.0:17000           0.0.0.0:*               LISTEN      3544/redis-server *
    tcp        0      0 0.0.0.0:17001           0.0.0.0:*               LISTEN      3549/redis-server *
    tcp        0      0 0.0.0.0:17002           0.0.0.0:*               LISTEN      3554/redis-server *
    tcp        0      0 0.0.0.0:17003           0.0.0.0:*               LISTEN      3559/redis-server *
    tcp        0      0 192.168.2.80:6379       0.0.0.0:*               LISTEN      2754/redis-server 1
    tcp        0      0 0.0.0.0:17004           0.0.0.0:*               LISTEN      3575/redis-server *
    tcp        0      0 0.0.0.0:17005           0.0.0.0:*               LISTEN      3580/redis-server *
    tcp        0      0 0.0.0.0:7000            0.0.0.0:*               LISTEN      3544/redis-server *
    tcp        0      0 0.0.0.0:7001            0.0.0.0:*               LISTEN      3549/redis-server *
    tcp        0      0 0.0.0.0:7002            0.0.0.0:*               LISTEN      3554/redis-server *
    tcp        0      0 0.0.0.0:7003            0.0.0.0:*               LISTEN      3559/redis-server *
    tcp        0      0 0.0.0.0:7004            0.0.0.0:*               LISTEN      3575/redis-server *
    tcp        0      0 0.0.0.0:7005            0.0.0.0:*               LISTEN      3580/redis-server *
    tcp6       0      0 :::17000                :::*                    LISTEN      3544/redis-server *
    tcp6       0      0 :::17001                :::*                    LISTEN      3549/redis-server *
    tcp6       0      0 :::17002                :::*                    LISTEN      3554/redis-server *
    tcp6       0      0 :::17003                :::*                    LISTEN      3559/redis-server *
    tcp6       0      0 :::17004                :::*                    LISTEN      3575/redis-server *
    tcp6       0      0 :::17005                :::*                    LISTEN      3580/redis-server *
    tcp6       0      0 :::7000                 :::*                    LISTEN      3544/redis-server *
    tcp6       0      0 :::7001                 :::*                    LISTEN      3549/redis-server *
    tcp6       0      0 :::7002                 :::*                    LISTEN      3554/redis-server *
    tcp6       0      0 :::7003                 :::*                    LISTEN      3559/redis-server *
    tcp6       0      0 :::7004                 :::*                    LISTEN      3575/redis-server *
    tcp6       0      0 :::7005                 :::*                    LISTEN      3580/redis-server *

     查看集群节点的常用参数

    # redis-cli --cluster help

    [root@localhost ~]# redis-cli --cluster help
    Cluster Manager Commands:
      create         host1:port1 ... hostN:portN
                     --cluster-replicas <arg>
      check          host:port
                     --cluster-search-multiple-owners
      info           host:port
      fix            host:port
                     --cluster-search-multiple-owners
      reshard        host:port
                     --cluster-from <arg>
                     --cluster-to <arg>
                     --cluster-slots <arg>
                     --cluster-yes
                     --cluster-timeout <arg>
                     --cluster-pipeline <arg>
                     --cluster-replace
      rebalance      host:port
                     --cluster-weight <node1=w1...nodeN=wN>
                     --cluster-use-empty-masters
                     --cluster-timeout <arg>
                     --cluster-simulate
                     --cluster-pipeline <arg>
                     --cluster-threshold <arg>
                     --cluster-replace
      add-node       new_host:new_port existing_host:existing_port
                     --cluster-slave
                     --cluster-master-id <arg>
      del-node       host:port node_id
      call           host:port command arg arg .. arg
      set-timeout    host:port milliseconds
      import         host:port
                     --cluster-from <arg>
                     --cluster-copy
                     --cluster-replace
      help
    
    For check, fix, reshard, del-node, set-timeout you can specify the host and port of any working node in the cluster.
    
    [root@localhost ~]#

    官方文档地址:

    https://redis.io/topics/cluster-tutorial

    参考文章:

    https://www.cnblogs.com/yuanermen/p/5717885.html

  • 相关阅读:
    类成员之静态字段和普通字段、静态方法和普通方法
    类的导出
    面向对象之继承
    面向对象之封装
    面向对象与函数式的对比
    计算器
    模拟信用卡登录程序
    /etc/fstab
    解决 Your project contains error(s),please fix them before running your applica ..
    C#之SqlDependency数据库缓存
  • 原文地址:https://www.cnblogs.com/djlsunshine/p/10598822.html
Copyright © 2011-2022 走看看