云海的博客
首页
  • 接口
  • 数组
  • slice
  • map
  • 指针
  • 反射
  • Context
  • sync.map
  • 锁
  • 类型和类型指针分析
  • recover
  • 从零实现RPC框架
  • make和new区别
  • channel
  • sync.Once
  • sync.Pool
  • protobuf
  • MongoDB pkg源码-findone
  • MyBatis
  • Maven
  • 解析Laravel框架—路由处理
  • PHP(客户端)与 Golang(服务端)使用grpc+protobuf 通信
  • JAVA(客户端)与 Golang(服务端) 使用grpc+protobuf通信
  • Docker使用笔记-常用命令
  • Docker使用笔记-容器间通讯
  • Docker使用笔记-搭建Redis集群
  • Docker使用笔记-镜像多阶段构建
  • Kubernetes部署golang服务
  • Linux常用命令
  • Docker安装Prometheus与Grafana
  • Protobuf
  • TCP抓包
  • 概述-《TCP/IP详解》读书笔记
  • 索引
  • 事务隔离级别
  • 常识
  • 每日一题(1)
  • 每日一题(2)
  • 每日一题(3)
  • 每日一题(4)
关于
GitHub (opens new window)

云海

服务端研发
首页
  • 接口
  • 数组
  • slice
  • map
  • 指针
  • 反射
  • Context
  • sync.map
  • 锁
  • 类型和类型指针分析
  • recover
  • 从零实现RPC框架
  • make和new区别
  • channel
  • sync.Once
  • sync.Pool
  • protobuf
  • MongoDB pkg源码-findone
  • MyBatis
  • Maven
  • 解析Laravel框架—路由处理
  • PHP(客户端)与 Golang(服务端)使用grpc+protobuf 通信
  • JAVA(客户端)与 Golang(服务端) 使用grpc+protobuf通信
  • Docker使用笔记-常用命令
  • Docker使用笔记-容器间通讯
  • Docker使用笔记-搭建Redis集群
  • Docker使用笔记-镜像多阶段构建
  • Kubernetes部署golang服务
  • Linux常用命令
  • Docker安装Prometheus与Grafana
  • Protobuf
  • TCP抓包
  • 概述-《TCP/IP详解》读书笔记
  • 索引
  • 事务隔离级别
  • 常识
  • 每日一题(1)
  • 每日一题(2)
  • 每日一题(3)
  • 每日一题(4)
关于
GitHub (opens new window)
  • Docker使用笔记-常用命令
  • Docker使用笔记-镜像多阶段构建
  • Docker使用笔记-搭建Redis集群
    • Docker使用笔记-容器间通讯
    • Kubernetes部署golang服务
    • Linux命令
    • 网关浅析
    • Nginx配置
    • Protobuf
    • Docker安装Prometheus与Grafana
    • EFK日志收集系统单机版
    • 微服务
    云海
    2021-05-27
    目录

    Docker使用笔记-搭建Redis集群

    # 概述

    这篇文章,主要记录我如何在本地环境搭建redis集群的过程。

    # 前提

    • 本地已安装docker
    • 本地机器(Linux) ps:我本地环境为Mac

    # 过程

    1. 拉取docker redis镜像
    docker pull redis
    
    1

    2.确认redis镜像是否拉取成功

    docker images
    
    1

    3.新建redis模版配置文件 在本地机器中,新建一个配置文件。我推荐,先创建/Users/username/redis 文件夹,然后在文件夹中新建redis-cluster.conf 文件,写入如下内容。

    # ${PORT} redis 端口号。下一步,使用脚本替换。
    port ${PORT}
    cluster-enabled yes
    protected-mode no
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    #外部ip,可以使用ifconfig命令查看。 [注意: 不是127.0.0.1]
    cluster-announce-ip 192.168.0.12
    cluster-announce-port ${PORT}
    cluster-announce-bus-port 1${PORT}
    appendonly yes
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    创建文件命令

    mkdir -p /Users/username/redis
    
    touch /Users/username/redis/redis-cluster.conf
    
    1
    2
    3

    4.在/Users/username/redis 目录下,执行如下脚本文件,批量生成redis配置文件和data目录。

    for port in `seq 6000 6005`; do 
      mkdir -p ./${port}/conf && PORT=${port} envsubst < ./redis-cluster.conf > ./${port}/conf/redis.conf && mkdir -p ./${port}/data;
    done
    
    1
    2
    3

    5.执行docker启动脚本,执行成功后,通过docker ps 命令查看,如果新增6个容器,则代表成功。

    for port in `seq 6000 6005`; do 
      docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} -v /Users/username/redis/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /Users/username/redis/${port}/data:/data  --restart always --name redis-${port} --net redis-net --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; 
    done
    
    1
    2
    3

    6.进入某一个容器,进行关联。3主3从。

    进入容器命令

    docker exec -it containerid /bin/sh
    
    1

    执行关联

    cd /usr/local/bin && redis-cli --cluster create 192.168.0.12:6000 192.168.0.12:6001 192.168.0.12:6002 192.168.0.12:6003 192.168.0.12:6004 ip:6005 --cluster-replicas 1
    
    1

    7.使用redis-cli 链接其中一个redis,增加一条数据。然后通过其它redis 容器,验证是否关联成功,

    redis-cli -c -h 192.168.0.12 -p 6000 set test 1
    
    redis-cli -c -h 192.168.0.12 -p 6001 get test
    
    
    1
    2
    3
    4
    上次更新: 2023/01/11
    Docker使用笔记-镜像多阶段构建
    Docker使用笔记-容器间通讯

    ← Docker使用笔记-镜像多阶段构建 Docker使用笔记-容器间通讯→

    最近更新
    01
    函数
    04-11
    02
    面试题
    04-11
    03
    EFK日志收集系统单机版
    08-18
    更多文章>
    Theme by Vdoing | Copyright © 2022-2025 Evan Xu | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式