美文网首页
Redis集群搭建

Redis集群搭建

作者: 丿灬小朋 | 来源:发表于2018-07-05 16:11 被阅读0次

    一、如果是自己搭建,可以用虚拟机搭建,一般需要三台虚拟服务器

    安装前记得安装gcc,redis 基于gcc
    yum install gcc

    1. 下载和解包(也可以下载好的,从本地上传)

    cd /test/
    
    wget http://download.redis.io/releases/redis-3.2.1.tar.gz
    
    tar -zxvf redis-3.2.1.tar.gz
    
    

    2. 编译安装

    
    cd redis-3.2.1
    
    make && make install
    
    

    3. 创建redis节点

    测试我们选择3台服务器,分别为:192.168.33.20,192.168.33.21,192.168.33.22每分服务器有2个节点。
    
    a) 我先在192.168.33.20创建2个节点:
    
    cd /test/
    
    mkdir redis_cluster //创建集群目录
    
    cd redis_cluster
    
    mkdir 7001 7002 //分别代表二个节点  其对应端口  7001 7002
    
    //创建7001节点为例,拷贝到7001目录
    
    cp /test/redis-3.2.1/redis.conf.7001
    
    //拷贝到7001目录
    
    cp /test/redis-3.2.1/redis.conf.7001
    
    //拷贝到7002目录
    
    cp /test/redis-3.2.1/redis.conf.7002
    
     
    
    b) 分别对7001,7002文件夹中的2个文件修改对应的配置
    
    
    
    daemonize    yes //redis后台运行
    
    bind  192.168.33.22 //对应自己的机器ip,默认会报错([ERR] Sorry, can't connect to node )
    
    pidfile /var/run/redis_7001.pid //pidfile文件对应7001,7002   进程id
    
    logfile   "/test/redis_log/redis_7000.log" //日志记录文件
    
    dir  "/test/redis_db" //集群相关目录存放地址
    
    port 7001 //端口7001,7002
    
    cluster-enabled yes //开启集群  把注释#去掉
    
    cluster-config-file nodes_7001.conf //集群的配置  配置文件首次启动自动生成 7000,7001,7002
    
    cluster-node-timeout 5000 //请求超时  设置5秒够了
    
    appendonly yes //aof日志开启  有需要就开启,它会每次写操作都记录一条日志
    
    
    c) 在192.168.33.21 和192.168.33.22创建2个节点:对应的端口改为7003,7004,7005,7006配置对应的改一下就可以了。
    
    d) 两台机启动各节点(三台服务器方式一样)
    
    
    cd /test/redis-3.2.1
    
    redis-server redis_cluster/7001/redis.conf
    
    redis-server redis_cluster/7002/redis.conf
    
    redis-server redis_cluster/7003/redis.conf
    
    redis-server redis_cluster/7004/redis.conf
    
    redis-server redis_cluster/7005/redis.conf
    
    redis-server redis_cluster/7006/redis.conf
    
    e) 查看服务
    
    ps -ef | grep redis       #查看是否启动成功
    
    netstat -tnlp | grep redis    #可以看到redis监听端口
    
    pkill -9  redis   #可以杀死启动的redis的所有进程
    
    

    4、搭建集群

    ,接下来我们要把这些节点都串连起来搭建集群。官方提供了一个工具:redis-trib.rb(/usr/local/redis-
    3.2.1/src/redis-trib.rb) 看后缀就知道这鸟东西不能直接执行,
    它是用ruby写的一个程序,所以我们还得安装ruby.
    
    yum -y install ruby ruby-devel rubygems rpm-build
    
    再用 gem 这个命令来安装 redis接口。gem是ruby的一个工具包.
    gem install redis    //等一会儿就好了
    
    ***当然大部分情况下这样安装,安装完成后,会发现用yum安装的版本不对,版本不能太低
        可以安装rubygems-2.6.13.tgz ,版本在2.0以上
    
        tar zxvf rubygems-2.6.13.tgz
        cd rubygems-2.6.13
        ruby setup.rb
    
    同时也需要安装redis模块 redis-3.3.1.gem
    使用gem命令安装
    gem install -l redis-3.3.1.gem
    
    再重新执行上一条安装redis接口命令
    
    上面的步骤完事了,接下来运行一下redis-trib.rb
    
    /test/redis-3.2.1/src/redis-trib.rb
    
    
    image.png
    到这,应该明白了吧, 就是靠上面这些操作 完成redis集群搭建的。确认所有的节点都启动,接下来
    使用参数create 创建 (在192.168.33.20中来创建)
    
    /test/redis-3.2.1/src/redis-trib.rb  create  --replicas  1  192.168.33.20:7001 192.168.33.20:7002 
    192.168.33.21:7003 192.168.33.21:7004  192.168.33.22:7005  192.168.33.22:7006
    
    解释下, --replicas  1  表示 自动为每一个master节点分配一个slave节点    上面有6个节点,程序会按
    照一定规则生成 3个master(主)3个slave(从)
    前面已经提醒过的 防火墙一定要开放监听的端口,否则会创建失败。
    运行中,提示Can I set the above configuration? (type 'yes' to accept): yes    //输入yes
    接下来 提示  Waiting for the cluster to join..........  安装的时候在这里就一直等等等,没反应,傻傻等半
    天,看这句提示上面一句,Sending Cluster Meet Message to join the Cluster.
    
    但大部分情况按照上述就可以完成
        这下明白了,刚开始在一台Server上去配,也是不需要等的,这里还需要跑到Server2上做一些这样的操作。
        在192.168.22.21, redis-cli -c -p 7002、7003 分别进入redis各节点的客户端命令窗口, 依次
    输入 cluster meet 192.168.22.21 7000
        回到Server1,已经创建完毕了。
        查看一下 /test/redis/src/redis-trib.rb check 192.168.1.237:7000
        到这里集群已经初步搭建好了。
    

    5、redis命令

    入redis客户端:
    redis-cli -h 192.168.33.20 -p 7001 -c
    
    查看redis信息
    cluster info
    
    查看节点信息
    cluster nodes
    
    

    6. 安装可能遇到的问题

    1、CC adlist.o
      /bin/sh: cc: command not found
      make[1]: *** [adlist.o] Error 127
      make[1]: Leaving directory `/usr/local/redis-3.2.1/src
      make: *** [all] Error 2
    解决办法:GCC没有安装或版本不对,安装一下
    yum  install  gcc
    
    
    
    
     2、zmalloc.h:50:31: 
      error: jemalloc/jemalloc.h: No such file or directory
      zmalloc.h:55:2: error: 
    
      #error "Newer version of jemalloc required"
      make[1]: *** [adlist.o] Error 
      1
      make[1]: Leaving directory `/data0/src/redis-2.6.2/src
      make: *** [all] 
      Error 2
    解决办法:原因是没有安装jemalloc内存分配器,可以安装jemalloc 或 直接
    输入make MALLOC=libc  && make install
    
    
    
    
    相信自己,每一天都在进步!
    

    相关文章

      网友评论

          本文标题:Redis集群搭建

          本文链接:https://www.haomeiwen.com/subject/plspuftx.html