使用Docker Compose搭建Redis主从复制

在Docker中搭建Redis主从架构非常方便,下面是一个示例,演示一下如何使用Docker Compose搭建一个Redis主从复制环境。首先,确保我们本地环境已经安装了Docker和Docker Compose

我这里使用OrbStack替代了Docker desktop

1. 创建一个名为redis的文件夹,并在其中创建一个docker-compose.yml文件。

2. 在docker-compose.yml文件中添加以下内容:

version: '3'
services:redis-master:image: redis:latestcontainer_name: redis-masterports:- "6379:6379"networks:- redis-networkvolumes:- ./redis-master-data:/dataredis-slave:image: redis:latestcontainer_name: redis-slaveports:- "6380:6379"networks:- redis-networkcommand: redis-server --slaveof redis-master 6379volumes:- ./redis-slave-data:/datanetworks:redis-network:driver: bridge

上述docker-compose.yml文件定义了两个Redis服务,一个用于主节点(redis-master),另一个用于从节点(redis-slave)。主节点将监听默认端口6379,从节点将监听端口6380。此外,我们创建了一个自定义网络(redis-network),以便主从节点可以相互通信。

1. 创建两个文件夹redis-master-dataredis-slave-data,用于存储主节点和从节点的数据。

2. 打开终端,导航到包含docker-compose.yml文件的文件夹,并运行以下命令启动容器:

docker-compose up -d

这将下载Redis镜像(如果尚未下载)并启动主从容器。

docker ps查看容器状态

检查主从复制是否正常工作。您可以使用redis-cli连接到主节点并执行一些写操作:

docker exec -it redis-master redis-cli

redis-cli中,执行以下命令:

SET mykey "Hello, Redis!"

图片

然后,使用另一个redis-cli连接到从节点,检查数据是否已经复制:

docker exec -it redis-slave redis-cli

在从节点的redis-cli中,执行以下命令:

GET mykey

从节点上看到相同的值,这表明主从复制已成功设置。

通过这个示例,我们可以在Docker容器中轻松搭建Redis主从架构,以测试和学习Redis复制功能。请注意,这只是一个简单的示例,实际生产环境中可能需要更多的配置和安全性考虑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/472441.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件实例分享,药店进销存软件医药系统进销存教程

软件实例分享,药店进销存软件医药系统进销存教程 一、前言 以下软件程序教程以 佳易王药店进销存管理系统V16.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 软件可以对药品的有效期进行管理,可以查询还有多少天到期的…

云计算基础-网络虚拟化

虚拟交换机 什么是虚拟交换机 虚拟交换机是一种运行在虚拟化环境中的网络设备,其运行在宿主机的内存中,通过软件方式在宿主机内部实现了部分物理交换机的功能,如 VLAN 划分、流量控制、QoS 支持和安全功能等网络管理特性 虚拟交换机在云平…

Swift Combine 合并多个管道以更新 UI 元素 从入门到精通十七

Combine 系列 Swift Combine 从入门到精通一Swift Combine 发布者订阅者操作者 从入门到精通二Swift Combine 管道 从入门到精通三Swift Combine 发布者publisher的生命周期 从入门到精通四Swift Combine 操作符operations和Subjects发布者的生命周期 从入门到精通五Swift Com…

《Go 简易速速上手小册》第2章:控制结构与函数(2024 最新版)

文章目录 2.1 条件语句:决策的艺术2.1.1 基础知识讲解2.1.2 重点案例:用户角色权限判断实现用户角色权限判断扩展功能实现代码功能扩展:添加或删除用户 2.1.3 拓展案例 1:成绩等级判断实现成绩等级判断功能实现代码扩展功能&#…

C++初阶(十一) list

一、list的介绍及使用 1.1 list的介绍 list的文档介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点…

《软件方法(下)》8.2.5.1 类名中是否有形容词(202402更新)

8.2.5.1 类名中是否有形容词 如果存在“形容词(的)名词”这样的类名,例如“待支付(的)订单”、“合适(的)会议室”,可以先把形容词从类名移除,转成类的一个状态属性。很…

Python iter函数

在Python编程中,iter()函数是一个非常重要且常用的内置函数,用于生成迭代器对象。迭代器是一种可以逐个访问数据元素的对象,可以用于遍历序列、集合以及自定义数据结构等。本文将深入探讨Python中的iter()函数,包括基本用法、可迭…

AI:129-基于深度学习的极端天气事件预警

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

Java集合 List接口

List接口操作 Java的List接口是Java集合框架中的一部分&#xff0c;它表示有序的集合。List接口提供了许多常用的方法&#xff0c;以下是其中的一些例子&#xff1a; 增加元素 add(E e)&#xff1a;将指定的元素插入此列表的末尾。 List<String> list new ArrayList…

【JavaEE】spring boot快速上手

SpringBoot快速上手 文章目录 SpringBoot快速上手Maven会出现的一个官方bug创建完项目之后常用的的三个功能依赖管理Maven仓库中央仓库本地仓库国内源配置私服 springboot项目创建什么是springspring boot项目的创建Hello Worldweb服务器 SpringMVC什么是SpringWebMVC什么是MVC…

LabVIEW卫星电视接收仿真系统

LabVIEW卫星电视接收仿真系统 随着卫星电视数字化的加速&#xff0c;传统模拟信号接收系统已无法满足需求。设计一套船载数字卫星电视接收系统&#xff0c;通过LabVIEW环境进行仿真实验&#xff0c;验证系统设计的可行性与有效性&#xff0c;满足数字信号接收的高精度要求&…

RUST入门:如何用vscode调试rust程序

RUST已经流行一阵子了&#xff0c;但是比较系统的IDE介绍还是比较少&#xff0c;这里我简单介绍 一下如何用vscode实现单步调试rust程序&#xff0c;就像我们平时调试c程序一样。 学习资料网站 首先&#xff0c;介绍几个学习rust的好网站&#xff0c; Rust程序设计语言Rust语…