zoukankan      html  css  js  c++  java
  • redis集群搭建以及常见问题

    在Linux上搭建redis集群时踩了不少坑在这里记录下来。首先要保证搭建的环境干净要不然很容易报错!!!

    创建存放集群配置文件的文件夹:mkdir /redis

    cd/ redis
    cp /opt//opt/redis-5.0.5/redis.conf redis6380.conf
    cp /opt//opt/redis-5.0.5/redis.conf redis6381.conf
    cp /opt//opt/redis-5.0.5/redis.conf redis6382.conf
    cp /opt//opt/redis-5.0.5/redis.conf redis6383.conf
    cp /opt//opt/redis-5.0.5/redis.conf redis6384.conf
    cp /opt//opt/redis-5.0.5/redis.conf redis6385.conf
    

     

    配置文件:

    ## 6380
    bind 127.0.0.1 绑定当前机器 IP
    port 6380    端口号
    daemonize yes 启动集群模式
    pidfile 6380.pid pid要与port对应
    logfile 6380.log 也要与port对应  
    cluster-enabled yes 启动集群模式
    cluster-config-file node-6380.conf 与port对应
    cluster-node-timeout 10000
    appendonly yes
    ## 6381
    bind 127.0.0.1
    port 6381
    daemonize yes
    pidfile 6381.pid
    logfile 6381.log
    cluster-enabled yes
    cluster-config-file node-6381.conf
    cluster-node-timeout 10000
    appendonly yes
    ## 6382
    bind 127.0.0.1
    port 6382
    daemonize yes
    pidfile 6382.pid
    logfile 6382.log
    cluster-enabled yes
    cluster-config-file node-6382.conf
    cluster-node-timeout 10000
    appendonly yes
    ## 6383
    bind 127.0.0.1
    port 6383
    daemonize yes
    pidfile 6383.pid
    logfile 6383.log
    cluster-enabled yes
    cluster-config-file node-6383.conf
    cluster-node-timeout 10000
    appendonly yes
    ## 6384
    bind 127.0.0.1
    port 6384
    daemonize yes
    pidfile 6384.pid
    logfile 6384.log
    cluster-enabled yes
    cluster-config-file node-6384.conf
    cluster-node-timeout 10000
    appendonly yes
    ## 6385
    bind 127.0.0.1
    port 6385
    daemonize yes
    pidfile 6385.pid
    logfile 6385.log
    cluster-enabled yes
    cluster-config-file node-6385.conf
    cluster-node-timeout 10000
    appendonly yes

    安装ruby:

    wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.4.tar.gz
    tar ruby-2.6.4.tar.gz
    cd ruby-2.6.4
    ./configure --prefix=/opt/ruby
    make && make install

    安装ruby依赖:

    yum install gem
    gem install redis

    配置环境变量:

    vim /etc/profile.d/ruby.sh
    PATH=/opt/ruby/bin:$PATH
    source /etc/profile.d/ruby.sh 

    启动6380-6385六个节点:

    [root@localhost redis-5.0.5]#./src/redis-server /redis/redis6380.conf 
    [root@localhost redis-5.0.5]#./src/redis-server /redis/redis6381.conf 
    [root@localhost redis-5.0.5]#./src/redis-server /redis/redis6382.conf 
    [root@localhost redis-5.0.5]#./src/redis-server /redis/redis6383.conf 
    [root@localhost redis-5.0.5]#./src/redis-server /redis/redis6384.conf 
    [root@localhost redis-5.0.5]#./src/redis-server
    /redis/redis6385.conf 
    
    ps -ef|grep redis 查看是否启动成功

    创建集群:

    ./src/redis-cli --cluster create --cluster-replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385
    M: 93a8d761d0e3954c2857dc56644c193e6945fe52 127.0.0.1:6380
       slots:[0-5460] (5461 slots) master
    M: a6403a00156e293a3605b026b69b5700de0ebcb6 127.0.0.1:6381
       slots:[5461-10922] (5462 slots) master
    M: 77b59aa125fc8550a76b414b6103366e7a6d8d22 127.0.0.1:6382
       slots:[10923-16383] (5461 slots) master
    S: 8ab38a76a844f5109a4b7f3f9b9419132fb0392a 127.0.0.1:6383
       replicates a6403a00156e293a3605b026b69b5700de0ebcb6
    S: 69f025afe14065e62cf178f7a3366426cc64fe3a 127.0.0.1:6384
       replicates 77b59aa125fc8550a76b414b6103366e7a6d8d22
    S: 6918fcaecb46dc77b018acb48a8c30504c9dc7e3 127.0.0.1:6385
       replicates 93a8d761d0e3954c2857dc56644c193e6945fe52
    Can I set the above configuration? (type 'yes' to accept): yes
    
    输入yes启动
    表示成功
     
    常用命令:
    ./src/redis-cli --cluster info 127.0.0.1:6380 查看状态
    ./src/redis-cli -c -p 6380 连接

    报错:

    解决办法:

    1. 删除每个节点对应的nodes-xxx.conf配置文件 rm -rf node*

    2. 删除每个节点下的aof、rdb文件 rm -rf *.aof rm -rf *.rdb

    3. 关掉redis集群各个实例的进程,重新启动

  • 相关阅读:
    git常用操作的总结
    Vue全局错误捕获
    Vue全局布局组件的设计
    Python 创建守护进程
    常用代码集合
    Linux -- 终端命令快捷键汇总
    MySQL -- 查询结果 直接导出至本地文件
    Linux -- 守护进程
    ConcurrentWebSocketSessionDecorator(并发安全的websocket) The remote endpoint was in state [TEXT_PARTIAL_WRITING]
    Ubuntu安装docker
  • 原文地址:https://www.cnblogs.com/Pynu/p/14401190.html
Copyright © 2011-2022 走看看