Docker搭建redis-cluster

主要内容来自:https://www.cnblogs.com/xuchen0117/p/11678931.html

创建文件夹

mkdir redis-cluster-d
cd redis-cluster-d
vim redis-cluster.tmpl

port ${PORT}
masterauth 123456
requirepass 123456
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 106.52.41.56
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes

(1)port(端口号)
(2)masterauth(设置集群节点间访问密码,跟下面一致)
(3)requirepass(设置redis访问密码)
(4)cluster-enabled yes(启动集群模式)
(5)cluster-config-file nodes.conf(集群节点信息文件)
(6)cluster-node-timeout 5000(redis节点宕机被发现的时间)
(7)cluster-announce-ip(集群节点的ip,写主机ip,上面的ip是我随便写的)
(8)cluster-announce-port(集群节点的汇报port)
(9)cluster-announce-bus-port(集群节点的汇报bus-port)
(10) appendonly yes(开启aof)

生成节点文件

配置6个节点,3主3从

for port in `seq 6380 6385`; do \
  mkdir -p ./${port}/conf \
  && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \
  && mkdir -p ./${port}/data; \
done

使用tree查看文档结构,没有命令就安装

yum -y install tree

在这里插入图片描述

创建容器

可以用命令创建

for port in `seq 6380 6385`; 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

也可以使用docker-compose创建,要麻烦点

vim redis-cluster.yml

version: '3'
services:
  redis:
    image: redis
    ports:
      - "6380:6380"
    container_name: "redis"
    network_mode: "host"
    volumes:
      - "/root/docker/redis/redis-cluster-d/6380/conf/redis.conf:/etc/redis/redis.conf"
      - "/root/docker/redis/redis-cluster-d/6380/data:/data"
      - "/etc/localtime:/etc/localtime:ro"
    command: redis-server /etc/redis/redis.conf

搭建集群

进入一个redis实例

docker exec -it redis-6380 bash
redis-cli -a 123456 --cluster create 106.52.41.56:6380 106.52.41.56:6381 106.52.41.56.78:6382 106.52.41.56:6383 106.52.41.56:6384 106.52.41.56:6385 --cluster-replicas 1

如果在箭头等待,要把服务器的安全组的端口放开,包括6380-6385、16380-16385
在这里插入图片描述

验证

redis-cli -c -a 123456  -p 6380

在这里插入图片描述

#批量停止
docker ps -a | grep -i "redis-*" | awk '{print $1}' | xargs docker stop
#批量删除
docker ps -a | grep -i "redis-*" | awk '{print $1}' | xargs docker rm -f
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是搭建 Redis 集群的步骤: 1. 创建一个 Docker 网络 ``` docker network create redis-net ``` 2. 启动 6 个 Redis 容器 ``` docker run -d --name redis-1 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-2 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-3 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-4 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-5 --net redis-net redis redis-server --appendonly yes docker run -d --name redis-6 --net redis-net redis redis-server --appendonly yes ``` 这里启动了 6 个 Redis 容器,分别命名为 `redis-1` 到 `redis-6`,并且将它们都加入到了 `redis-net` 网络中。 3. 创建 Redis 集群 ``` docker run -it --rm --net redis-net redis redis-cli --cluster create \ $(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis-1) \ $(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis-2) \ $(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis-3) \ $(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis-4) \ $(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis-5) \ $(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis-6) \ --cluster-replicas 1 ``` 这里使用 `redis-cli` 命令创建 Redis 集群,其中 `--cluster create` 表示创建集群,后面跟着的是 6 个 Redis 容器的 IP 地址,`--cluster-replicas 1` 表示每个主节点都有一个从节点。 4. 验证 Redis 集群 ``` docker run -it --rm --net redis-net redis redis-cli -c ``` 这里使用 `redis-cli` 命令连接到 Redis 集群,`-c` 表示开启集群模式。然后可以执行一些命令来验证 Redis 集群是否正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值