前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker快速建立Redis集群(Cluster)并配置外网访问 服务器基础配置docker 配置建立集群

Docker快速建立Redis集群(Cluster)并配置外网访问 服务器基础配置docker 配置建立集群

作者头像
蓝夏
发布2021-03-19 17:51:43
1.5K0
发布2021-03-19 17:51:43
举报
文章被收录于专栏:bluesummerbluesummer

本篇文章介绍redis集群的快速搭建,不对redis进行深入探究,方便想要了解redis集群的朋友快速进行测试。

服务器基础配置

创建挂载目录

代码语言:javascript
复制
mkdir /mnt/data/rediscluster/7001/data
mkdir /mnt/data/rediscluster/7001/conf
mkdir /mnt/data/rediscluster/7002/data
mkdir /mnt/data/rediscluster/7002/conf
mkdir /mnt/data/rediscluster/7003/data
mkdir /mnt/data/rediscluster/7003/conf
mkdir /mnt/data/rediscluster/7101/data
mkdir /mnt/data/rediscluster/7101/conf
mkdir /mnt/data/rediscluster/7102/data
mkdir /mnt/data/rediscluster/7102/conf
mkdir /mnt/data/rediscluster/7103/data
mkdir /mnt/data/rediscluster/7103/conf

分别在每个conf目录下创建文件redis.conf

代码语言:javascript
复制
#端口号,写文件夹对映的端口
Port 7001
#开启集群
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
#开启aof存储
appendonly yes
#设置登录密码
requirepass 123123
#设置节点密码,集群必设
masterauth 123123
# 关闭保护,外网可直接访问
protected-mode no

开放端口

代码语言:javascript
复制
iptables -I INPUT -p tcp --dport 7001 -j ACCEPT
iptables -I INPUT -p tcp --dport 7002 -j ACCEPT
iptables -I INPUT -p tcp --dport 7003 -j ACCEPT
iptables -I INPUT -p tcp --dport 7101 -j ACCEPT
iptables -I INPUT -p tcp --dport 7102 -j ACCEPT
iptables -I INPUT -p tcp --dport 7103 -j ACCEPT
iptables -I INPUT -p tcp --dport 17001 -j ACCEPT
iptables -I INPUT -p tcp --dport 17002 -j ACCEPT
iptables -I INPUT -p tcp --dport 17003 -j ACCEPT
iptables -I INPUT -p tcp --dport 17101 -j ACCEPT
iptables -I INPUT -p tcp --dport 17102 -j ACCEPT
iptables -I INPUT -p tcp --dport 17103 -j ACCEPT

同时在云服务器安全组开放以上端口

docker 配置

编辑docker-compose.yml文件

代码语言:javascript
复制
version: "3.4"

services:
  redis1:
    image: redis:5.0.3
    restart: "no"
    container_name: redis5-m1
    command: redis-server /etc/redis/redis.conf
    volumes:
      - /mnt/data/rediscluster/7001/data:/data
      - /mnt/data/rediscluster/7001/conf/redis.conf:/etc/redis/redis.conf
    network_mode: "host"

  redis2:
    image: redis:5.0.3
    restart: "no"
    container_name: redis5-m2
    command: redis-server /etc/redis/redis.conf
    volumes:
      - /mnt/data/rediscluster/7002/data:/data
      - /mnt/data/rediscluster/7002/conf/redis.conf:/etc/redis/redis.conf
    network_mode: "host"

  redis3:
    image: redis:5.0.3
    restart: "no"
    container_name: redis5-m3
    command: redis-server /etc/redis/redis.conf
    volumes:
      - /mnt/data/rediscluster/7003/data:/data
      - /mnt/data/rediscluster/7003/conf/redis.conf:/etc/redis/redis.conf
    network_mode: "host"

  redis4:
    image: redis:5.0.3
    restart: "no"
    container_name: redis5-s1
    command: redis-server /etc/redis/redis.conf
    volumes:
      - /mnt/data/rediscluster/7101/data:/data
      - /mnt/data/rediscluster/7101/conf/redis.conf:/etc/redis/redis.conf
    network_mode: "host"

  redis5:
    image: redis:5.0.3
    restart: "no"
    container_name: redis5-s2
    command: redis-server /etc/redis/redis.conf
    volumes:
      - /mnt/data/rediscluster/7102/data:/data
      - /mnt/data/rediscluster/7102/conf/redis.conf:/etc/redis/redis.conf
    network_mode: "host"

  redis6:
    image: redis:5.0.3
    restart: "no"
    container_name: redis5-s3
    command: redis-server /etc/redis/redis.conf
    volumes:
      - /mnt/data/rediscluster/7103/data:/data
      - /mnt/data/rediscluster/7103/conf/redis.conf:/etc/redis/redis.conf
    network_mode: "host"

执行命令

代码语言:javascript
复制
docker-compose up -d

运行命令docker ps查看redis6个实例是否都启动成功

建立集群

随意进入一个容器内

代码语言:javascript
复制
docker exec -it redis5-m1 /bin/bash

在容器内执行命令:

代码语言:javascript
复制
redis-cli --cluster create 外网ip:7001  外网ip:7002  外网ip:7003 外网ip:7101 外网ip:7102  外网ip:7103  --cluster-replicas 1

中途会提示是否启用上述配置,输入 yes

执行命令:exit 退出容器

至此集群搭建完成

查看集群当前状态

随意进入一个容器内输入命令:

代码语言:javascript
复制
redis-cli -a 123123 --cluster info 外网ip:7001

注意:

建立集群时需要保证集群每个节点中都没有数据。如果写入了数据想要重建集群,需要先把 /mnt/data/rediscluster/*/data 目录下的文件清空

代码语言:javascript
复制
find /mnt/data/rediscluster/   -name "nodes.*" |xargs rm -rf
find /mnt/data/rediscluster/   -name "*.aof" |xargs rm -rf
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 服务器基础配置
    • 创建挂载目录
      • 分别在每个conf目录下创建文件redis.conf
        • 开放端口
        • docker 配置
          • 编辑docker-compose.yml文件
          • 建立集群
            • 查看集群当前状态
            相关产品与服务
            容器镜像服务
            容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档