• centos 7 两台机器搭建三主三从 redis 集群


    参考自:
    https://linux.cn/article-6719-1.html
    http://blog.csdn.net/xu470438000/article/details/42971091

    ### 两台服务器,各启动三个实例,形成三主三从
    实验机器IP: 192.168.2.247 192.168.2.248

    系统环境:centos 7

    1、安装所需环境和工具
    yum -y install wget vim tcl gcc make

    2、下载redis 压缩包并解压
    cd /usr/local/
    wget http://download.redis.io/releases/redis-3.2.8.tar.gz
    tar -zxvf redis-3.2.8.tar.gz

    3、编译redis源文件
    cd redis-3.2.8
    make

    cd src
    make install
    # 测试: make test
    (如果 /usr/local/bin/ 文件夹内没有 redis-server 那几个文件,就从 /usr/local/redis-3.2.8/src/ 中拷贝过去,命令:cp redis-server redis-cli redis-sentinel redis-benchmark redis-check-aof redis-check-rdb /usr/local/bin/)


    4、配置内核参数
    # 配置 vm.overcommit_memory 为1,这可以避免数据被截断
    sysctl -w vm.overcommit_memory=1

    5、创建多实例的文件夹,用来存放不同实例的配置文件
    cd /usr/local/
    mkdir cluster
    cd cluster
    mkdir 7000 7001 7002

    6、修改配置文件
    vim /usr/local/redis-3.2.8/redis.conf

    bind 192.168.2.247(需要不同服务器的节点连通,就不能设置为 127.0.0.1)
    protected-mode no(需要不同服务器的节点连通,这个就要设置为 no)
    daemonize yes(设置后台运行redis)
    cluster-enabled yes
    cluster-node-timeout 5000
    appendonly yes

    # 根据不同端口需要设置的地方
    port 7000
    pidfile /var/run/redis_7000.pid
    logfile /var/log/redis/redis_7000.log
    dbfilename dump_7000.rdb
    appendfilename "appendonly_7000.aof"
    cluster-config-file nodes_7000.conf


    7、复制配置文件到各个实例文件夹,并修改相应端口号和参数
    cp -f /usr/local/redis-3.2.8/redis.conf /usr/local/cluster/7000/
    cp -f /usr/local/redis-3.2.8/redis.conf /usr/local/cluster/7001/
    cp -f /usr/local/redis-3.2.8/redis.conf /usr/local/cluster/7002/

    8、启动各个实例
    cd /usr/local/redis-3.2.8/src/
    ./redis-server /usr/local/cluster/7000/redis.conf &
    ./redis-server /usr/local/cluster/7001/redis.conf &
    ./redis-server /usr/local/cluster/7002/redis.conf &

    使用 ps -ef|grep redis 查看是否都启动成功,IP和端口号都正确

    9、防火墙开通端口号策略(这里用centos7默认的firewall-cmd)
    firewall-cmd --zone=public --add-port=7000-7002/tcp --permanent
    firewall-cmd --zone=public --add-port=17000-17002/tcp --permanent(必须开集群总线端口,集群总线端口=端口号+10000,例:7000的集群总线端口是17000。这个集群总线端口不开放,集群的时候外部服务器的节点添加不进来)
    firewall-cmd --reload


    ==================================================================================
    ====================== 1~9都是要在两台服务器中操作的 ===========================
    ==================================================================================

    10、测试两台服务器是否都能 telnet 得通另一台的 7000~7002 和 17000~17002

    11、安装 ruby 环境
    yum -y install ruby rubygems

    12、更新gem源,国外的会被墙,所以换一个国内的
    gem sources --remove https://rubygems.org/
    gem sources -a https://ruby.taobao.org/

    13、使用gem安装 redis和 ruby接口
    gem install redis (或 gem install redis --version 3.2.8)

    14、创建集群
    cd /usr/local/redis-3.2.8/src/
    ./redis-trib.rb create --replicas 1 192.168.2.247:7000 192.168.2.247:7001 192.168.2.247:7002 192.168.2.248:7000 192.168.2.248:7001 192.168.2.248:7002

    留意屏幕,会有一句(type 'yes' to accept),输入 yes ,回车,就是接受自动分配的三主三从
    如果最后出现
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.

    说明成功了。

    如果是出现
    Waiting for the cluster to join...........
    一直有 “.”出现,说明另一台服务器的端口策略没通,一直在等那边的节点加入集群,那么恭喜你,要悲剧了.....


    15、验证集群节点数
    cd /usr/local/redis-3.2.8/src/
    ./redis-cli -h 192.168.2.247 -c -p 7000
    CLUSTER NOTES

  • 相关阅读:
    php冒泡排序和快速排序
    在thinkphp中js文件添加路径
    cookiesession
    搭建nginx环境(参考腾讯云实验室)
    验证码快速刷新
    使用Word发送,测试一下
    c++ DLL和c#之间传递字符串
    如何使CEF支持Flash
    如何在Windows上从源码编译Chromium (CEF3) 加入mp3支持
    C#在Linux+Mono环境中使用微信支付证书
  • 原文地址:https://www.cnblogs.com/error503/p/7372444.html
Copyright © 2020-2023  润新知