• docker部署redis集群


    一、查询最新redis镜像

    docker search redis

     

    二、下载redis镜像

    docker pull redis

     

    三、创建一个文件夹,以及创建redis-cluster.tmpl模板文件

    mkdir redis-cluster-d

    cd redis-cluster-d

    port ${PORT}

    masterauth 123456

    requirepass 123456

    cluster-enabled yes

    cluster-config-file nodes.conf

    cluster-node-timeout 5000

    cluster-announce-ip 172.19.0.1

    cluster-announce-port ${PORT}

    cluster-announce-bus-port 1${PORT}

    appendonly yes

    参数描述

    (1port(端口号)

    (2masterauth(设置集群节点间访问密码,跟下面一致)

    (3requirepass(设置redis访问密码)

    (4cluster-enabled yes(启动集群模式)

    (5cluster-config-file nodes.conf(集群节点信息文件)

    (6cluster-node-timeout 5000redis节点宕机被发现的时间)

    (7cluster-announce-ip(集群节点的汇报ip,防止nat,预先填写为网关ip后续需要手动修改配置文件)

    (8cluster-announce-port(集群节点的汇报port,防止nat

    (9cluster-announce-bus-port(集群节点的汇报bus-port,防止nat

    (10) appendonly yes(开启aof

    四、 redis-cluster下生成confdata目标,并生成配置信息

    执行以下命令,按模板生成文件以及文件夹

    for port in `seq 7001 7006`; do

      mkdir -p ./${port}/conf

      && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf

      && mkdir -p ./${port}/data;

    done

     

    文件结构

     

    五、创建6redis容器

    for port in `seq 7001 7006`; do

         docker run -d --net=host -v /root/redis-cluster-d/${port}/conf/redis.conf:/etc/redis/redis.conf -v /root/redis-cluster-d/${port}/data:/data --restart always --name=redis-${port}  redis redis-server /etc/redis/redis.conf;

    done

     

    六、进入任意一个已运行的redis容器

    docker exec -it redis-7001 bash

     

    执行集群指令

     redis-cli -a 123456 --cluster create 192.168.96.171:7001 192.168.96.171:7002 192.168.96.171:7003 192.168.96.171:7004 192.168.96.171:7005 192.168.96.171:7006 --cluster-replicas 1

     

     

    七、检查集群状态

    容器内验证

    redis-cli -c -a 123456  -h 192.168.96.171  -p 7001

     

    Centos中验证

    redis-cli -c -a 123456 -h 192.168.96.171 -p 7001

     

    redis-cli -a 123456 --cluster check 192.168.96.171:7001

     

    八、如果是准备在公网使用集群,需要修改每一个nodes.conf文件中 myself,master配置的ip地址为公网ip,并重启

     

  • 相关阅读:
    HDU 5280 Senior's Array (暴力,水)
    LeetCode Intersection of Two Linked Lists (找交叉点)
    LeetCode Pascal's Triangle II (杨辉三角)
    LeetCode Lowest Common Ancestor of a Binary Search Tree (LCA最近公共祖先)
    LeetCode Binary Tree Level Order Traversal (按层收集元素)
    LeetCode Balanced Binary Tree (判断平衡树)
    LeetCode Maximum Depth of Binary Tree (求树的深度)
    LeetCode Palindrome Linked List (回文链表)
    jstl表达式的应用的条件
    dao层写展示自己需要注意的问题
  • 原文地址:https://www.cnblogs.com/xuchen0117/p/11678931.html
Copyright © 2020-2023  润新知