docker下搭建redis集群

1. 环境准备

准备好Linux系统机器,并安装好docker,阅读这篇文章前请先了解清楚docker的基本知识并且会熟悉运用docker的常用命令。学习docker基础知识可以参考这篇博文
安装好并启动docker后就可以开始搭建redis了

2. docker容器下安装redis

本篇文章我们安装redis6.0.6版本,执行以下命令直接下载redis6.0.6版本镜像

#dokcer pull 镜像名:版本号
docker pull redis:6.0.6

安装好后再执行 docker images命令,查看到redis6.0.6镜像则安装成功
在这里插入图片描述

3. 搭建redis集群

安装好redis镜像后,此时redis还只是单体,我们需要搭建集群,集群配置如下:

  • docker端口号→宿主机对外暴露的端口:7000→7000,7001→7001,7002→7002,7003→7003,7004→7004,7005→7005
  • 挂载目录:data(数据) → /usr/local/docker/redis/端口号/data/
    conf(配置文件)→ /usr/local/docker/端口号/redis.conf
  • 集群模式:三主三从
  • 节点容器名称:redis-7000,redis-7001,redis-7002,redis-7003,redis-7004,redis-7005

回到linux,首先创建好挂载目录

# 批量创建redis节点7000-7005目录
mkdir -p /usr/local/docker/redis/700{0,1,2,3,4,5}/data

然后分别创建个节点的配置文件,并添加配置信息

vim /usr/local/docker/redis/7000/redis.conf

# 添加以下配置信息
port 7000									
protected-mode no								
daemonize no
appendonly yes									
cluster-enabled yes							
cluster-config-file nodes.conf					
cluster-node-timeout 20000						

----------------------------------------------------------------------
配置说明:
port # 节点端口
protected-mode # 保护模式,默认值 yes,即开启
daemonize # 是否以守护线程的方式启动(后台启动),默认 no;
appendonly # 是否开启 AOF 持久化模式,默认 no;
cluster-enabled # 是否开启集群模式,默认 no
cluster-config-file # 集群节点信息文件
cluster-node-timeout # 集群节点连接超时时间(ms)

创建7000节点配置文件后将它复制到其他节点目录下,注意复制到其他目录需要将配置文件的port改为该节点的端口号

cp /usr/local/docker/redis/7000/redis.conf /usr/local/docker/redis/7001
cp /usr/local/docker/redis/7000/redis.conf /usr/local/docker/redis/7002
cp /usr/local/docker/redis/7000/redis.conf /usr/local/docker/redis/7003
cp /usr/local/docker/redis/7000/redis.conf /usr/local/docker/redis/7004
cp /usr/local/docker/redis/7000/redis.conf /usr/local/docker/redis/7005

接下来就可以创建每个节点的docker容器,以7000节点为例

# 创建7000节点容器
docker run \
-p 7000:7000 \
-v /usr/local/docker/redis/7000/redis.conf:/etc/redis/redis.conf \
-v /usr/local/docker/redis/7000/data:/data \
--name redis-7000 \
--net host \
-d redis:6.0.6 redis-server /etc/redis/redis.conf

----------------------------------------------------------------
命令说明
-p 7000:7000 \		#宿主机端口号:容器端口	端口映射
-v /usr/local/docker/redis/7000/redis.conf:/etc/redis/redis.conf \	#宿主机目录:容器目录  redis配置文件挂载
-v /usr/local/docker/redis/7000/data:/data \	#redis数据文件挂载
--name redis-7000 \		# 给容器起个名称
--net host \			# 指定网络类型为host,即与宿主机使用同一网络
-d redis:6.0.6 redis-server /etc/redis/redis.conf	#运行容器 并使用配置文件启动容器内的 redis-server  

然后分别执行以下命令创建并运行其他节点容器

# 创建7001节点容器
docker run \
-p 7001:7001 \
-v /usr/local/docker/redis/7001/redis.conf:/etc/redis/redis.conf \
-v /usr/local/docker/redis/7001/data:/data \
--name redis-7001 \
--net host \
-d redis:6.0.6 redis-server /etc/redis/redis.conf

# 创建7002节点容器
docker run \
-p 7002:7002 \
-v /usr/local/docker/redis/7002/redis.conf:/etc/redis/redis.conf \
-v /usr/local/docker/redis/7002/data:/data \
--name redis-7002 \
--net host \
-d redis:6.0.6 redis-server /etc/redis/redis.conf

# 创建7003节点容器
docker run \
-p 7003:7003 \
-v /usr/local/docker/redis/7003/redis.conf:/etc/redis/redis.conf \
-v /usr/local/docker/redis/7003/data:/data \
--name redis-7003 \
--net host \
-d redis:6.0.6 redis-server /etc/redis/redis.conf

# 创建7004节点容器
docker run \
-p 7004:7004 \
-v /usr/local/docker/redis/7004/redis.conf:/etc/redis/redis.conf \
-v /usr/local/docker/redis/7004/data:/data \
--name redis-7004 \
--net host \
-d redis:6.0.6 redis-server /etc/redis/redis.conf

# 创建7005节点容器
docker run \
-p 7005:7005 \
-v /usr/local/docker/redis/7005/redis.conf:/etc/redis/redis.conf \
-v /usr/local/docker/redis/7005/data:/data \
--name redis-7005 \
--net host \
-d redis:6.0.6 redis-server /etc/redis/redis.conf

此时我们已经创建好了所有节点,但各个节点还是相互独立的,我们需要将他们整合成集群,执行以下命令建立集群

redis-cli --cluster create --cluster-replicas 1 \
192.168.93.71:7000 192.168.93.71:7001 192.168.93.71:7002 \
192.168.93.71:7003 192.168.93.71:7004 192.168.93.71:7005

出现以下结果则表示集群创建成功

在这里插入图片描述在这里插入图片描述

我们可以执行以下命令进入其中一个节点查看集群信息

# 进入7000节点容器
docker exec -it redis-7000 bash
# 进入redis
redis-cli -p 7000
# 查看集群喜喜
cluster nodes

出现以下结果表示集群创建成功

在这里插入图片描述

  • 6
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
使用 Docker Compose 可以快速搭建 Redis 集群,实现高可用性和高性能的分布式缓存。下面是搭建 Redis 集群的步骤: 1. 创建一个 redis-cluster 的文件夹,在其中创建多个文件夹,每个文件夹代表一个 Redis 节点,例如 redis6479、redis6480 等。 2. 在每个节点文件夹中创建 docker-compose.yml 文件,文件内容如下: version: '3.3' services: redis: image: redis command: redis-server --appendonly yes ports: - "6379" volumes: - ./data:/data networks: - redis-cluster networks: redis-cluster: driver: bridge 3. 在每个节点文件夹中创建 redis.conf 文件,文件内容如下: port 6379 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes 4. 在 redis-cluster 文件夹中创建 docker-compose.yml 文件,文件内容如下: version: '3.3' services: redis6479: network_mode: 'host' image: redis container_name: redis6479 restart: always logging: driver: 'json-file' options: max-size: '5g' volumes: - ./data:/data - ./redis.conf:/usr/local/etc/redis/redis.conf - ./logs:/logs command: redis-server /usr/local/etc/redis/redis.conf redis6480: network_mode: 'host' image: redis container_name: redis6480 restart: always logging: driver: 'json-file' options: max-size: '5g' volumes: - ./data:/data - ./redis.conf:/usr/local/etc/redis/redis.conf - ./logs:/logs command: redis-server /usr/local/etc/redis/redis.conf 5. 在 redis-cluster 文件夹中运行 docker-compose up 命令启动 Redis 集群。 相关问题: 1. Docker Compose 是什么? 2. Redis 集群有哪些优点? 3. 如何使用 Docker Compose 部署其他应用?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值