• Redis集群


    Redis集群 

      Redis集群实现了对Redis的水平扩容,即启动N个Redis节点,将整个数据库分布存储到这N个 节点中,每个节点存储总数据量的N分之一,Redis集群通过分区来提供一定程度上的 可用性,即使集群中有一部分的节点失效或者无法进行通讯,集群仍然可以继续处理命令请求.

    Redis集群搭建步骤

      1、安装Ruby环境.

        执行yum install ruby

         执行yum install rubygems

      2、准备6个Redis实例(三主三从),dump目录是为了保存所有的RDB文件,log目录是为了保存所有的日志文件.

            

      3、redis-6379.conf配置文件(6380/6381/6389/6390/6391与6379配置文件一致,只需要修改一下相应的端口即可).

    // 引用外部的redis.conf(redis.conf配置文件是Redis原生的配置文件)
    include /usr/local/myredis/bin/redis.conf
    
    // 开启保护模式
    protected-mode no
    
    // 指定端口
    port 6379
    
    // 允许后台启动Redis服务
    daemonize yes
    
    // 指定日志文件位置
    logfile "/usr/local/myredis/bin/log/redis-6379.log"
    
    // 指定RDB文件名称
    dbfilename "dump-6379.rdb"
    
    // 指定RDB文件的路径
    dir "/usr/local/myredis/bin/dump"
    
    // 指定pid文件
    pidfile "/var/run/redis_6379.pid"
    
    // 开启集群
    cluster-enabled yes
    
    // 指定节点配置文件
    cluster-config-file  nodes-6379.conf
    
    // 设置节点超时时间(ms),超过此时间节点将自动进行主从切换
    cluster-node-timeout 15000
    

     

      4、启动6个Redis实例,一定要确保启动6个实例之后生成了对应的nodexx.conf文件

       

      

      5、将六个节点合成一个集群

        创建redis集群命令(三主三从,一个主对应一个从,注意redis-5.0.0版本开始才支持--cluster,之前的版本会报错Unrecognized option or bad number of args for:--cluster

    ./redis-cli --cluster create  
    192.168.229.129:6379 192.168.229.129:6380 
    192.168.229.129:6381 192.168.229.129:6389 
    192.168.229.129:6390 192.168.229.129:6391 --cluster-replicas 1
    

        如果配置项cluster-enabled的值不为yes,则执行时会报错[ERR] Node 192.168.229.128:6381 is not configured as a cluster node.这个时候需要先将cluster-enabled的值改为yes,然后重启redis-server进程,之后才可以重新执行redis-cli创建集群.

         redis-cli的参数说明:

          1、create

            表示创建一个redis集群。

          2、--cluster-replicas 1

            表示为集群中的每一个主节点指定一个从节点,即一比一的复制.

    // 合并成功后的6个节点
    >>> 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.229.129:6390 to 192.168.229.129:6379
    Adding replica 192.168.229.129:6391 to 192.168.229.129:6380
    Adding replica 192.168.229.129:6389 to 192.168.229.129:6381
    >>> Trying to optimize slaves allocation for anti-affinity
    [WARNING] Some slaves are in the same host as their master
    
    // 6379是master,对应的ID为 c78230ccc7f24f6722a6c8bab99c9bf1c3919cbd
    M: c78230ccc7f24f6722a6c8bab99c9bf1c3919cbd 192.168.229.129:6379
       slots:[0-5460] (5461 slots) master
    
    // 6380是master,对应的ID为  1c2ec35156832a01bbe685232c2004c8dde40b27 
    M: 1c2ec35156832a01bbe685232c2004c8dde40b27 192.168.229.129:6380
       slots:[5461-10922] (5462 slots) master
    
    // 6381是master,对应的ID为  5f453cb9cddde68334fe4b704b0fcda69b8e93d9 
    M: 5f453cb9cddde68334fe4b704b0fcda69b8e93d9 192.168.229.129:6381
       slots:[10923-16383] (5461 slots) master
    
    // 根据ID可以看出6389是6380的从机
    S: 6e35fe94bdb42f4843d9489c83b1c902cd0d8040 192.168.229.129:6389
       replicates 1c2ec35156832a01bbe685232c2004c8dde40b27
    
    // 根据ID可以看出6390是6381的从机
    S: 5002e820bfcecd3f36c82c2f0194ca981ba3ad71 192.168.229.129:6390
       replicates 5f453cb9cddde68334fe4b704b0fcda69b8e93d9
    
    // 根据ID可以看出6391是6379的从机
    S: 2e48161308203ea729d36642b5c8d1f0f61c154a 192.168.229.129:6391
       replicates c78230ccc7f24f6722a6c8bab99c9bf1c3919cbd
    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.229.129:6379)
    M: c78230ccc7f24f6722a6c8bab99c9bf1c3919cbd 192.168.229.129:6379
       slots:[0-5460] (5461 slots) master
       1 additional replica(s)
    M: 1c2ec35156832a01bbe685232c2004c8dde40b27 192.168.229.129:6380
       slots:[5461-10922] (5462 slots) master
       1 additional replica(s)
    S: 6e35fe94bdb42f4843d9489c83b1c902cd0d8040 192.168.229.129:6389
       slots: (0 slots) slave
       replicates 1c2ec35156832a01bbe685232c2004c8dde40b27
    M: 5f453cb9cddde68334fe4b704b0fcda69b8e93d9 192.168.229.129:6381
       slots:[10923-16383] (5461 slots) master
       1 additional replica(s)
    S: 2e48161308203ea729d36642b5c8d1f0f61c154a 192.168.229.129:6391
       slots: (0 slots) slave
       replicates c78230ccc7f24f6722a6c8bab99c9bf1c3919cbd
    S: 5002e820bfcecd3f36c82c2f0194ca981ba3ad71 192.168.229.129:6390
       slots: (0 slots) slave
       replicates 5f453cb9cddde68334fe4b704b0fcda69b8e93d9
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.
    

      

      6、登录客户端.

    redis-cli -h 192.168.229.129 -c -p 6379
    

      

      7、测试

      

       

     

     

    192.168.229.128
  • 相关阅读:
    Sgu294He's Circles
    [HNOI2008]Card洗牌
    传球游戏
    [BZOJ1478]Sgu282 Isomorphism
    [POJ2154]Color
    [ZOJ1961]Let it Bead
    BZOJ1257 [CQOI2007]余数之和sum
    BZOJ1192 [HNOI2006]鬼谷子的钱袋
    BZOJ4614 [Wf2016]Oil
    BZOJ3209 花神的数论题
  • 原文地址:https://www.cnblogs.com/xiaomaomao/p/13434784.html
Copyright © 2020-2023  润新知