zoukankan      html  css  js  c++  java
  • redis集群搭建(伪集群)

    1.准备工作

    去官网下载好你想要安装的redis版本,下载链接

    2.搭建步骤

    输入命令yum install gcc-c++安装好gcc环境,将下载好的redis安装包上传到 /usr/local

    解压redis安装包

    tar -zxvf redis-4.0.11.tar.gz

    进入解压后的目录进行编译

    cd /usr/local/redis-4.0.11

    make

    编译这一步可以指定目录,也就是安装的指定目录

    把上一步的make 写成  make PREFIX=/usr/local/redis install   (在这里我指定的目录为 /usr/local/redis)

    安装完毕之后 redis文件夹下面会生成一个bin目录

    bin目录下有以下几个文件

    复制redis.conf到bin目录下

    cp  /usr/local/redis-4.0.11 /usr/local/redis/bin

    进入bin目录

    cd /usr/local/redis/bin

    编辑redis.conf

    vi redis.conf

    进行如下修改

    daemonize    yes                          //redis后台运行
    cluster-enabled  yes                      //开启集群  把注释#去掉
    cluster-node-timeout  5000                //请求超时  设置5秒够了
    appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志

    创建集群目录

    cd /usr/local

    mkdir redis-cluster

    将bin目录下的文件拷贝到集群目录下的节点目录中,共有6个目录,分别是redis01、redis02、redis03、redis04、redis05、redis06

    cp -r /usr/local/redis/bin/ /usr/local/redis-cluster/redis01

    cp -r /usr/local/redis/bin/ /usr/local/redis-cluster/redis02

    cp -r /usr/local/redis/bin/ /usr/local/redis-cluster/redis03

    cp -r /usr/local/redis/bin/ /usr/local/redis-cluster/redis04

    cp -r /usr/local/redis/bin/ /usr/local/redis-cluster/redis05

    cp -r /usr/local/redis/bin/ /usr/local/redis-cluster/redis06

    对每个目录下的redis.conf文件进行如下修改

    pidfile  /var/run/redis_7001.pid          //redis01下7001,redis下7002,以此类推,下同
    port  7001                               
    cluster-config-file  nodes_7001.conf      //集群的配置  配置文件首次启动自动生成 7001,7002,7003

    在redis-cluster目录下新建一个启动脚本start-all.sh

    cd redis01
    ./redis-server redis.conf
    cd ..
    cd redis02
    ./redis-server redis.conf
    cd ..
    cd redis03
    ./redis-server redis.conf
    cd ..
    cd redis04
    ./redis-server redis.conf
    cd ..
    cd redis05
    ./redis-server redis.conf
    cd ..
    cd redis06
    ./redis-server redis.conf
    cd ..

    给启动脚本赋予权限

    chmod +x start.sh

    执行启动脚本,启动redis

    ./start-all.sh

    将redis源码目录src下的redis-trib.rb拷贝到redis-cluster目录下

    cp /usr/local/redis-4.0.11/src/redis-trib.rb /usr/local/redis-cluster

    根据这个redis-trib.rb这个文件的后缀,很明显还需要安装ruby,查看是否安装ruby以及版本

    ruby -version

    低于2.2的版本在后续安装中会出现问题,如安装的版本低于2.2,则需要安装2.2以上的版本

    具体安装步骤可以参考博主的另一篇博客:搭建redis集群的过程中遇到的问题

    安装好ruby环境之后,再用 gem 这个命令来安装 redis接口 

    gem install redis

    安装完事儿之后,执行redis-trib.rb

    /usr/local/redis-cluster/redis-trib.rb  create  --replicas  1  192.168.25.133:7001 192.168.25.133:7002  192.168.25.133:7003 192.168.25.133:7004  192.168.25.133:7005  192.168.25.133:7006

    如遇到如下提示信息Can I set the above configuration? (type 'yes' to accept):输入Y

    创建成功会出现如下的信息:

    >>> Creating cluster
    >>> Performing hash slots allocation on 6 nodes...
    Using 3 masters:
    192.168.106.132:7001
    192.168.106.132:7002
    192.168.106.132:7003
    Adding replica 192.168.106.132:7004 to 192.168.106.132:7001
    Adding replica 192.168.106.132:7005 to 192.168.106.132:7002
    Adding replica 192.168.106.132:7006 to 192.168.106.132:7003
    M: 6c388e0cd04990b23e2e65b285b5f9c1bc996538 192.168.106.132:7001
    slots:0-5460 (5461 slots) master
    M: 01e9cd67978b1cad73a40e9a70000a236744cb17 192.168.106.132:7002
    slots:5461-10922 (5462 slots) master
    M: 72a649017fdd5d4045f9d58df8b231c2d69e6c32 192.168.106.132:7003
    slots:10923-16383 (5461 slots) master
    S: b90aa487cf48270df43e79af98807bb5ffabbe34 192.168.106.132:7004
    replicates 6c388e0cd04990b23e2e65b285b5f9c1bc996538
    S: f873f54c61dbb613df58fa4b9ff8bc3dd48e2388 192.168.106.132:7005
    replicates 01e9cd67978b1cad73a40e9a70000a236744cb17
    S: daa813e169580417f4410fac86a3d4ab9abda804 192.168.106.132:7006
    replicates 72a649017fdd5d4045f9d58df8b231c2d69e6c32
    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.106.132:7001)
    M: 6c388e0cd04990b23e2e65b285b5f9c1bc996538 192.168.106.132:7001
    slots:0-5460 (5461 slots) master
    1 additional replica(s)
    S: b90aa487cf48270df43e79af98807bb5ffabbe34 192.168.106.132:7004
    slots: (0 slots) slave
    replicates 6c388e0cd04990b23e2e65b285b5f9c1bc996538
    M: 72a649017fdd5d4045f9d58df8b231c2d69e6c32 192.168.106.132:7003
    slots:10923-16383 (5461 slots) master
    1 additional replica(s)
    M: 01e9cd67978b1cad73a40e9a70000a236744cb17 192.168.106.132:7002
    slots:5461-10922 (5462 slots) master
    1 additional replica(s)
    S: daa813e169580417f4410fac86a3d4ab9abda804 192.168.106.132:7006
    slots: (0 slots) slave
    replicates 72a649017fdd5d4045f9d58df8b231c2d69e6c32
    S: f873f54c61dbb613df58fa4b9ff8bc3dd48e2388 192.168.106.132:7005
    slots: (0 slots) slave
    replicates 01e9cd67978b1cad73a40e9a70000a236744cb17
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.

    若出现如下报错信息:./redis-trib.rb:885:in 'sort!' : undefined method '<=>' for:m: symbol (NoMethodError)

    或出现其它的一些问题,可以参考博主另一篇博客:搭建redis集群的过程中遇到的问题

  • 相关阅读:
    Java main方法继承
    MySQL 事务
    数据库日志文件和内存刷新机制
    MySQL 存储过程
    MySQL 索引
    JVM锁优化
    JVM字节码执行引擎和动态绑定原理
    虚拟机类加载机制
    JVM内存分配与回收
    JVM垃圾收集器
  • 原文地址:https://www.cnblogs.com/Cryptonym/p/10641480.html
Copyright © 2011-2022 走看看