Docker 搭建redis 集群

1. 搭建

  • 下载redis 镜像
  • 编写redis 配置
  • 创建redis 容器
  • 创建redis cluster 集群

2. 编写redis 配置文件

  1. 创建目录
[root@root ~]# mkdir -p /soft/redis/redis-cluster
  1. 目录下 编写 redis-cluster.tmpl
port ${PORT}
requirepass root
masterauth root
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
cluster-announce-ip 192.168.220.133
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}

# 2. 第二胎虚拟机改下ip
 
  1. 执行端口文件
# 1. 第一台linux
for port in `seq 6371 6373`; do \
mkdir -p ${port}/conf \
&& PORT=${port} envsubst < redis-cluster.tmpl > ${port}/conf/redis.conf \
&& mkdir -p ${port}/data; \
done

# 2. 第二台 虚拟机
for port in `seq 6374 6376`; do \
mkdir -p ${port}/conf \
&& PORT=${port} envsubst < redis-cluster.tmpl > ${port}/conf/redis.conf \
&& mkdir -p ${port}/data; \
done

在这里插入图片描述

3 . 创建redis 容器

将主机6371-6376 之间的端口和 redis 容器映射,已经主机目录进行挂载 并指定网路模式 为 host

# 1. 机器1
for port in $(seq 6371 6373); do \
docker run -di --restart always --name redis-${port} --net host \
-v /soft/redis/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /soft/redis/redis-cluster/${port}/data:/data \
redis redis-server /usr/local/etc/redis/redis.conf; \
done

# 2. 机器2
for port in $(seq 6374 6376); do \
docker run -di --restart always --name redis-${port} --net host \
-v /soft/redis/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /soft/redis/redis-cluster/${port}/data:/data \
redis redis-server /usr/local/etc/redis/redis.conf; \
done

4. 创建redis 集群

随便进入一个redis 容器节点 并进入 /usr/local/bin 目录

# 1. 进入容器
docker exec -it redis-6374 bash

# 2 . 进入目录
cd /usr/local/bin

# 3. 执行集群指令
redis-cli -a root --cluster create 192.168.220.132:6371 192.168.220.132:6372 192.168.220.132:6373 192.168.220.133:6374 192.168.220.133:6375 192.168.220.133:6376 --cluster-replicas 1

# 4. 检查集群状态
redis-cli -a root --cluster check 192.168.220.132:6371

# 5. 集群模式设置 -c -a 用户
redis-cli -c -p 6374 -a root 

  • 创建OK
    在这里插入图片描述

在这里插入图片描述

  • 报错需要停止防火墙
systemctl disable firewalld
systemctl stop firewalld
  • 检查集群状态
    在这里插入图片描述
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值