zoukankan      html  css  js  c++  java
  • Docker Redis5.0 集群搭建

    〇、目标

      1.在一台Centos7虚拟机中,以Docker搭建Redis集群(redis版本为5.0.x)。

      2.六个节点,三主三从。

    〇、准备

      1.新建文件夹以放置各个节点的配置文件

        

      2.编写各节点的配置文件

        (1)从官网下载配置文件模板:

        使用命令: wget http://download.redis.io/redis-stable/redis.conf -O <文件名> 

        例如  wget http://download.redis.io/redis-stable/redis.conf -O ./7001/redis7001.conf 

         (2)修改如下:

    #bind 127.0.0.1              #注释掉
    port 700*              #6份配置文件,从7001到7006
    appendonly yes               #允许持久化
    cluster-enable yes             #开启集群
    cluster-config-file nodes-7001.conf  #存放各节点信息,会自动生成该文件
    cluster-node-timeout 15000        #节点失效检测响应的超时时间

    #各节点之间通信所用ip、端口与总线端口
    cluster-announce-ip 192.168.22.130   #宿主机ip
    cluster-announce-port 700*       #6份配置文件,cong7001到7006
    cluster-announce-bus-port 1700*     #6份配置文件,从17001到17006

    一、创建Redis镜像

      1.使用外部配置文件在docker中创建redis镜像

      (其他几个节点镜像以同样方式创建,注意修改名称与路径):

    # 参数说明:
    # --restart always            (docker启动时,本镜像也自动启动)
    # --name <容器名>
    # --net <模式>               (镜像的网络配置,host表示使用本地主机的网络)
    # --privileged <true|false>      (权限,true表示拥有root权限)
    # -v <本地配置文件映射容器配置文件> -v <本地文件夹挂载到容器文件夹>
    # -d (表示以守护进程方式启动容器)
    # redis redis-server <文件名>     (启动redis服务并制定配置文件)
    # 注意:使用host模式的-p参数没用,不必指定
    docker run --restart always --name redis-cluster-7001 --net host --privileged=true -v /usr/local/docker/redis-cluster/7001/redis7001.conf:/usr/local/docker/redis-cluster/7001/redis7001.conf -v /usr/local/docker/redis-cluster/7001/data:/usr/local/docker/redis-cluster/7001/data -d redis redis-server /usr/local/docker/redis-cluster/7001/redis7001.conf

      2.查看镜像

    三、创建集群

      1.进入其中一个镜像:

      

      2.创建集群

    #因为网络配置是host模式,则 <宿主机ip>:<port>  (6个节点)

    redis-cli --cluster create 192.168.22.130:7001 192.168.22.130:7002 192.168.22.130:7003 192.168.22.130:7004 192.168.22.130:7005 192.168.22.130:7006 --cluster-replicas 1

      3.测试

    #进入其中一个节点
    redis-cli -c -p 7001
    #查看集群信息
    cluster nodes

    四、注意

      1.ruby

        在Redis5.0.x已经不使用ruby和redis-trib.rb创建集群了

      2.创建集群过程中中断

        再次创建时,会显示[ERR] Node <ip>:<port> is not empty .......

        解决方法是删除镜像,重新创建镜像:

    #停止镜像
    docker stop <镜像名或镜像id>
    
    #删除镜像
    #docker rm <镜像名或镜像id>
    
    #重新创建

      

      3.创建集群时一直waiting......

        原因可能是节点的网络配置(ip、端口等)出了问题。注意创建镜像时要使用--net参数,配置文件内的ip、端口要指定好,以及检查一下防火墙。

      4.redis镜像的状态(status)一直显示restart

        使用 docker logs <镜像名或镜像id> 命令查看出了什么问题

  • 相关阅读:
    连接数据库,创建表,插入数据,更新数据
    常用的表达式转换
    同构与异构
    Bitmap(一)
    ListView的优化尝试
    Animation初探(二)
    Animation初探(一)
    关于ActionBar的坑
    关于Bitmap的加载(二)
    关于Bitmap的加载(一)
  • 原文地址:https://www.cnblogs.com/Drajun/p/12359277.html
Copyright © 2011-2022 走看看