news 2026/4/15 11:50:31

docker下搭建redis集群

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 19:10:27

docker 安装 mysql

目录 一、下载mysql镜像 1.查看你自己的镜像下载 ?2.运行一个mysql容器 方法一、?直接运行 方法二、创建脚本 直接使用脚本运行 3.连接数据库 一、下载mysql镜像 docker pull mysql:5.71.查看你自己的镜像下载 docker images?2.运行一个mysql容器 方法一、直接运行…

作者头像 李华
网站建设 2026/4/15 2:51:32

二分猜答案

二分前后缀分解lc786二分查找分数值范围&#xff0c;统计小于等于中间值的分数个数&#xff0c;定位第k小的素数分数并返回#include <vector> using namespace std;class Solution { private:vector<int> arr;int n, a, b; public:vector<int> kthSmallestPr…

作者头像 李华
网站建设 2026/4/11 20:37:12

信使(msner)(信息学奥赛一本通- P1376)四种做法

【题目描述】战争时期&#xff0c;前线有n个哨所&#xff0c;每个哨所可能会与其他若干个哨所之间有通信联系。信使负责在哨所之间传递信息&#xff0c;当然&#xff0c;这是要花费一定时间的&#xff08;以天为单位&#xff09;。指挥部设在第一个哨所。当指挥部下达一个命令后…

作者头像 李华
网站建设 2026/4/13 20:33:46

Nomad ZBrush:GSC 模型制作教程

Nomad & ZBrush&#xff1a;GSC 模型制作教程课程基本信息- 发布时间&#xff1a;2026年1月 - 类别&#xff1a;设计类 - 格式与规格&#xff1a;MP4 格式 1920x1080 分辨率 - 语言&#xff1a;英语 - 时长&#xff1a;15小时 - 大小&#xff1a;22GB - 副标题&#xff1…

作者头像 李华
网站建设 2026/4/12 0:43:03

TOTOLINK EX200存在未修复固件漏洞可被完全远程接管

CERT协调中心(CERT/CC)披露了影响TOTOLINK EX200无线信号扩展器的未修复安全漏洞详情&#xff0c;该漏洞可能允许经过身份验证的远程攻击者完全控制设备。该漏洞编号为CVE-2025-65606(CVSS评分&#xff1a;暂无)&#xff0c;被描述为固件上传错误处理逻辑中的缺陷&#xff0c;可…

作者头像 李华
网站建设 2026/4/15 9:44:36

Ring推出Fire Watch功能,利用家庭摄像头追踪野火威胁

洛杉矶大火一年后&#xff0c;亚马逊Ring安防服务宣布推出名为Fire Watch的新功能&#xff0c;旨在减轻未来野火风险。Fire Watch与CES 2026同期发布&#xff0c;是Ring应用程序Neighbors社区安全更新板块的新功能&#xff0c;计划今年春季在全国范围内推出。Fire Watch依托Wat…

作者头像 李华