docker搭建Redis cluster集群,完全无坑笔记

docker搭建Redis cluster集群,完全无坑笔记。

环境:Linux虚拟机Centos7.0

1. 安装docker
- 1.1 安装所需的软件包
yum install -y yum-utils  device-mapper-persistent-data lvm2
- 1.2 设置稳定的存储库
yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo
- 1.3 安装docker-ce(docker社区版-必须-版本会新一点)
# 如果下载速度太慢,ctrl+c退出安装,重新执行安装命令
yum install -y docker-ce
- 1.4 启动docker并设置为开机启动
systemctl start docker
systemctl enable docker
- 1.5 检查是否安装成功,查看docker版本
docker -v

在这里插入图片描述

- 1.5 开放需要的端口(此次安装用如下接口)
firewall-cmd --permanent --zone=public --add-port=7000-7005/tcp
firewall-cmd --permanent --zone=public --add-port=17000-17005/tcp
#重新加载配置
firewall-cmd --reload
#查看开放的端口
firewall-cmd --permanent --zone=public --list-ports
2. 安装redis
- 2.1 创建redis镜像
docker pull redis
- 2.2 查看redis镜像
docker images

在这里插入图片描述

- 2.3 创建redis cluster容器

2.3.1 创建redis容器集群文件夹

#路径可自定义,如果自定义路径,后面用到此路径的命令也需要修改
mkdir -p /home/redis-cluster    

2.3.2 创建redis的配置文件redis.conf模板文件

vim redis-cluster.tmpl

插入如下内容,wq退出且保存

##节点端口
port ${PORT}
##开启集群模式
protected-mode no
##cluster集群模式
cluster-enabled yes 
##集群配置名                               
cluster-config-file nodes.conf
##超时时间 
cluster-node-timeout 5000
##集群的中各个容器的ip地址
cluster-announce-ip 192.168.31.57
##节点映射端口
cluster-announce-port ${PORT}
##节点总线端口
cluster-announce-bus-port 1${PORT}
##持久化模式
appendonly yes

cluster-announce-ip 参数设置为容器所在的物理机虚拟机的ip,我们是在一台虚拟机上搭建redis集群所以ip都一样

2.3.3 在/home/redis-cluster下生成redis的conf和dat目录,并生成redis.conf配置文件

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

创建完成如下图,每个文件下面都有data和conf目录

在这里插入图片描述

2.1.4 创建6个redis容器并启动

for port in `seq 7000 7005`; do \
  docker run -d --net host --privileged=true \
  -v $PWD/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  -v $PWD/${port}/data:/data \
  --restart always --name redis-${port} \
  redis redis-server /usr/local/etc/redis/redis.conf; \
done

2.1.5 查询看正在运行的6个redis容器

docker ps

在这里插入图片描述

- 3.1 创建redis cluster

3.1.1 随便进入一个redis容器

docker exec -it redis-7000 bash

3.1.2 创建cluster

#此处的ip对应每个容器的ip,本次这6个redis容器的ip都为物理主机ip
redis-cli --cluster create 192.168.31.57:7000 192.168.31.57:7001 192.168.31.57:7002 192.168.31.57:7003 192.168.31.57:7004 192.168.31.57:7005 --cluster-replicas 1

成功显示如下:

在这里插入图片描述
在这里插入图片描述
至此,redis cluster 集群已经创建好了。

如果要删除镜像,执行如下命令

for port in `seq 7000 7005`; do \
  docker stop redis-${port};
  docker rm redis-${port};
done 

进入redis 命令控制台

# 根据CONTAINER ID/NAMES先进入容器
docker exec -it  CONTAINER ID/NAMES bash

#再根据prot进入控制台
redis-cli -p port -c

查看redis实时日志

#根据CONTAINER ID/NAMES查看
docker logs -f -t --since="2017-05-31" --tail=10 CONTAINER ID/NAMES
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
要在Docker中集成Redis Cluster集群,可以按照以下步骤操作: 1. 创建一个Docker Compose文件,定义Redis Cluster集群的服务和配置。例如: ``` version: '3' services: redis-1: image: redis:latest command: redis-server /redis-conf/redis-1.conf ports: - 6381:6381 volumes: - ./conf/redis-1.conf:/redis-conf/redis-1.conf - ./data/redis-1:/data redis-2: image: redis:latest command: redis-server /redis-conf/redis-2.conf ports: - 6382:6382 volumes: - ./conf/redis-2.conf:/redis-conf/redis-2.conf - ./data/redis-2:/data redis-3: image: redis:latest command: redis-server /redis-conf/redis-3.conf ports: - 6383:6383 volumes: - ./conf/redis-3.conf:/redis-conf/redis-3.conf - ./data/redis-3:/data redis-4: image: redis:latest command: redis-server /redis-conf/redis-4.conf ports: - 6384:6384 volumes: - ./conf/redis-4.conf:/redis-conf/redis-4.conf - ./data/redis-4:/data redis-5: image: redis:latest command: redis-server /redis-conf/redis-5.conf ports: - 6385:6385 volumes: - ./conf/redis-5.conf:/redis-conf/redis-5.conf - ./data/redis-5:/data redis-6: image: redis:latest command: redis-server /redis-conf/redis-6.conf ports: - 6386:6386 volumes: - ./conf/redis-6.conf:/redis-conf/redis-6.conf - ./data/redis-6:/data networks: redis-cluster: driver: bridge ``` 2. 在同一目录下创建一个conf文件夹,用于存储每个Redis节点的配置文件。例如,创建一个redis-1.conf文件: ``` port 6381 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes ``` 3. 启动Redis Cluster集群服务: ``` docker-compose up -d ``` 4. 将节点加入Redis Cluster集群。可以使用redis-cli命令行工具连接到每个节点,并使用CLUSTER MEET命令将节点加入集群。例如: ``` redis-cli -h 127.0.0.1 -p 6381 > CLUSTER MEET 127.0.0.1 6382 > CLUSTER MEET 127.0.0.1 6383 > CLUSTER MEET 127.0.0.1 6384 > CLUSTER MEET 127.0.0.1 6385 > CLUSTER MEET 127.0.0.1 6386 ``` 5. 创建一个Redis Cluster集群。可以使用redis-cli命令行工具连接到任何一个节点,并使用CLUSTER CREATE命令来创建集群。例如: ``` redis-cli --cluster create 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385 127.0.0.1:6386 --cluster-replicas 1 ``` 6. 现在,您已经成功地在Docker中集成了Redis Cluster集群。可以使用redis-cli命令行工具连接到任何一个节点,并开始使用集群

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值