• Docker 搭建Redis Cluster 集群


    环境:

    centos7

    redis:7.0.5 三主三从,六个节点

    一、下载redis镜像

    docker pull redis:7.0.5

    二、创建虚拟网卡

    1. docker network create redis-cluster
    2. # 查看创建的Docker网卡
    3. docker network ls

    网卡类型为bridge桥接类型

    三、准备redis配置文件 redis.conf

    1. port ${port}
    2. requirepass 123456
    3. masterauth 123456
    4. bind 0.0.0.0
    5. protected-mode no
    6. daemonize no
    7. appendonly yes
    8. cluster-enabled yes
    9. cluster-config-file nodes.conf
    10. cluster-node-timeout 5000
    11. cluster-announce-ip 服务器ip地址
    12. cluster-announce-port ${port}
    13. cluster-announce-bus-port 1${port}

    配置解释:

    • port:节点端口;
    • requirepass:设置密码,访问时需要验证
    • masterauth: 设置主从复制密码
    • protected-mode:保护模式,默认值 yes,即开启。开启保护模式以后,需配置 bind ip 或者设置访问密码;关闭保护模式,外部网络可以直接访问;
    • daemonize:是否以守护线程的方式启动(后台启动),默认 no;
    • appendonly:是否开启 AOF 持久化模式,默认 no;
    • cluster-enabled:是否开启集群模式,默认 no;
    • cluster-config-file:集群节点信息文件;
    • cluster-node-timeout:集群节点连接超时时间;
    • cluster-announce-ip:集群节点 IP
      • 注意: 如果你想要你的redis集群可以供外网访问,这里需要填写服务器的外网IP地址
      • 如若为了安全,只是在服务器内部进行访问,那么就填写服务器的内网IP地址,外网客户端重定向到该内网IP就无法访问
    • cluster-announce-port:集群节点映射端口;
    • cluster-announce-bus-port:集群节点总线端口。
    • 注意,关于Redis Cluster 集群官网两个TCP端口的说明:

    将确认端口和服务器ip地址的配置文件放入/home/redis/node-${port}/conf/redis.conf。 

    例如:

    port 6381
    requirepass 123456

    masterauth 123456
    bind 0.0.0.0
    protected-mode no
    daemonize no
    appendonly yes
    cluster-enabled yes 
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    cluster-announce-ip  192.168.56.101
    cluster-announce-port 6381
    cluster-announce-bus-port 16381

    四、配置/etc/sysctl.conf

    vi /etc/sysctl.conf

    在最后一行添加如下配置:

    net.core.somaxconn = 10240

    vm.overcommit_memory=1

     保存后输入:sysctl -p 使配置立即生效。

    五、启动容器

     docker run -it -d -p ${port}:${port} -p 1${port}:1${port} 
        \--privileged=true -v /home/redis/node-${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf 
        \--privileged=true -v /home/redis/node-${port}/data:/data 
        \--restart always --name redis-${port} --sysctl net.core.somaxconn=10000 --net redis-cluster 
        \redis:7.0.5 redis-server /usr/local/etc/redis/redis.conf

    例如:docker run -it -d -p 6379:6379 -p 16379:16379 --privileged=true -v /home/redis/node-6379/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true -v /home/redis/node-6379/data:/data --restart always --name redis-6379 --sysctl net.core.somaxconn=10000 --net redis-cluster redis:7.0.5 redis-server /usr/local/etc/redis/redis.conf

    六、 创建Redis Cluster集群

    随意进入一个redis节点:

    docker exec -it redis-6379 /bin/bash

    进入redis 6379节点之后执行如下命令: 

    redis-cli -a 之前设置的密码 --cluster create 内网IP地址:6379 内网IP地址:6380 内网IP地址:6381 内网IP地址:6382 内网IP地址:6383 内网IP地址:6384 --cluster-replicas 1

    例如:

    redis-cli  -a 123456 --cluster create 192.168.56.101:6379 192.168.56.101:6380 192.168.56.101:6381 192.168.56.101:6382 192.168.56.101:6383 192.168.56.101:6384 --cluster-replicas 1 

    出现下图所示表示创建成功:

  • 相关阅读:
    【网络安全-sql注入(5)】sqlmap以及几款自动化sql注入工具的详细使用过程(提供工具)
    【web-渗透测试方法】(15.1)解析应用程序内容
    现代企业架构框架-技术架构
    qtdesigner使用树形控件实现堆叠布局
    DAY02 c++对c的扩展
    解决方案 | 法大大电子签加速高校七大场景全面实现数字化
    Linux:read 从键盘读入变量值
    922. 按奇偶排序数组 II - 力扣
    qiankun 乾坤主应用访问微应用css静态图片资源报404
    jsp196ssm毕业设计选题管理系统hsg4361B6
  • 原文地址:https://blog.csdn.net/cqconelin/article/details/132737599