• linux服务器docker 搭建 redis集群


    一、使用docker 拉取redis镜像

    进入 docker hup 官网 https://hub.docker.com/

    搜索redis,找到official

    复制 docker pull redis:latest  到我们的linux服务器 执行即可

     使用docker images 查看 

    发现已经有一个叫redis的镜像了

    二、 创建6个redis容器

    1. 容器名字 对外端口
    2. redis-node-1 5001
    3. redis-node-2 5002
    4. redis-node-3 5003
    5. redis-node-4 5004
    6. redis-node-5 5005
    7. redis-node-6 5006
    1. docker run -d --name redis-node-1 --net host --privileged=true -v /etc/localtime:/etc/localtime -v /opt/docker/redis/data/node1:/data redis --cluster-enabled yes --appendonly yes --port 5001 --requirepass mypassword --masterauth mypassword
    2. docker run -d --name redis-node-2 --net host --privileged=true -v /etc/localtime:/etc/localtime -v /opt/docker/redis/data/node2:/data redis --cluster-enabled yes --appendonly yes --port 5002 --requirepass mypassword --masterauth mypassword
    3. docker run -d --name redis-node-3 --net host --privileged=true -v /etc/localtime:/etc/localtime -v /opt/docker/redis/data/node3:/data redis --cluster-enabled yes --appendonly yes --port 5003 --requirepass mypassword --masterauth mypassword
    4. docker run -d --name redis-node-4 --net host --privileged=true -v /etc/localtime:/etc/localtime -v /opt/docker/redis/data/node4:/data redis --cluster-enabled yes --appendonly yes --port 5004 --requirepass mypassword --masterauth mypassword
    5. docker run -d --name redis-node-5 --net host --privileged=true -v /etc/localtime:/etc/localtime -v /opt/docker/redis/data/node5:/data redis --cluster-enabled yes --appendonly yes --port 5005 --requirepass mypassword --masterauth mypassword
    6. docker run -d --name redis-node-6 --net host --privileged=true -v /etc/localtime:/etc/localtime -v /opt/docker/redis/data/node6:/data redis --cluster-enabled yes --appendonly yes --port 5006 --requirepass mypassword --masterauth mypassword

    参数说明
    -d以守护进程的方式启动
    --name redis-node-6容器名字设置为redis-node-6
    --net host使用宿主机的ip和端口
    --privileged=true获取宿主机用户权限
    -v /etc/localtime:/etc/localtime使用宿主机时间
    -v /opt/docker/redis/data/node6:/data容器卷,宿主机地址:容器地址
    redisredis的镜像名字
    --cluster-enabled yes开启集群
    --appendonly yes开启持久化
    --port 5006redis端口
    --requirepass mypasswordredis密码
    --masterauth mypassword主从复制时,从redis访问主redis密码

    docker ps 查看

    # 进入某一个容器

    docker exec -it redis-node-1 /bin/bash

    # 组建集群,39.97.23.10 是当前物理机器的ip ,如果是阿里云的公网ip访问不同,可以使用私网
    有密码:

    redis-cli --cluster create -a mypassword 39.97.23.10:5001 39.97.23.10:5002 39.97.23.10:5003 39.97.23.10:5004 39.97.23.10:5005 39.97.23.10:5006 --cluster-replicas 1


    无密码:

    redis-cli --cluster create 39.97.23.10:5001 39.97.23.10:5002 39.97.23.10:5003 39.97.23.10:5004 39.97.23.10:5005 39.97.23.10:5006 --cluster-replicas 1


    docker 单间Redis集群部署出现Waiting for the cluster to join一直在等待
    问题原因:
    我用的是阿里云的服务区,就是防火墙的问题,开发部署的3主3从服务区,第一个是开放阿里云的安全组上面部署的redis的端口号,第二个则是开放安全组部署的redis端口号+1000,比如你的redis端口是6371,加两个安全组一个是6371,一个是16371,这样在加入集群时,才不会一直处于Waiting for the cluster to join 状态

    创建成功后,通过 redis-cli 查看一下集群节点信息:

    root@CentOS7:/data# redis-cli -p 5001
    127.0.0.1:6379> cluster nodes

    查看容器日志:

    docker logs -f 容器id

  • 相关阅读:
    工程伦理--16.1传统制造业的转型升级与伦理问题
    在博客园随笔中插入3D分子模型
    基于javaweb心理咨询预约管理系统
    高电压技术-冲击高压发生器MATLAB仿真
    JAVA赋值不使用引用的办法
    力扣--动态规划/深度优先算法/回溯算法93.复原IP地址
    mac下,vs code的PyQt6(PySide6)配置
    CMake aux_source_directory 学习
    6.26作业
    微软澳洲数据中心起火,仅3名员工值班
  • 原文地址:https://blog.csdn.net/u011159417/article/details/126640008