主从复制实现Redis集群
主从复制实现Redis集群实验 (一主二从):
实验环境: 使用Docker 搭建 Redis 版本 5.0.5
打开一个终端窗口,在其中运行如下命令创建一个名为redis-master的Redis容器。注意,它的端口是6379 (本地的端口:映射到容器的端口)
docker run -itd--name redis-master -p 6379:6379 redis:5.0.5(冒号后可跟特定的版本号;不写的话, 默认latest,即最新的版本)
新开一个命令窗口,在其中运行如下命令创建一个名为redis·slave1的容器。注意,它的端口是6380。这里是在一台电脑端口号来区别一台主Redis容器和另外两台从Redis容器。在真实项目里,多台Redis会部署在不同的服务器上 可以通过命令来创建从服务器
docker run -itd --name redis-slave1 -p 6380:6380 redis:5.0.5
docker run -itd --name redis-slave2 -p 6381:6381 redis:5.0.5
查看redis-master容器的ip地址, 这里是172.17.0.2
docker inspect my_redis | grep IPAddress
在真实项目里,Redis服务器所在的IP地址是固定的 而容器启动的Redis服务器的IP地址是动态的,所以这里用上述命令来获取IP地址 在redis-master容器的命令窗口里,分别运行命令,进入命令行窗口
docker exec -it 容器id可以(头几个字母就行), names也可以(能唯一标识容器即可) /bin/bashexit # 这个命令用于退出容器
可以使用redis-cli命令进入Redis的客户端命令行
redis-cli

因为还没有配置, 所以 显示的从节点连接数为0。
然后从服务器中, 可以到由于此时还没有通过命令行设置主从模式,因此输出结果里依然能看到当前服务器是“主服务器”,同时没有携带从服务器。在redis-slave1容器的命令窗口里运行如下的命令,指定当前Redis服务器为从服务器。该命令的格式是slaveof IP地址端口号
在从节点上执行下述指令, 使得与主节点建立关系
slaveof 172.17.0.2 6379
主从服务器建立关系
操作后, 主节点的状态

从节点的状态

主从复制模式能达到的效果: 主节点写东西, 从节点能够读取到数据

在项目里除了可以用slaveof命令搭建主从模式的集群外,还可以用配置参数的方式来搭建,具体的步骤如下: 搭建主服务器的命令不变,并且还是用6379端口
docker run -itd my_redis -p 6379:6379 redis:5.0.5
// 配置从节点的配置文件 如: cd /usr/server vim redisSlave1.conf
port 6380
slaveof 172.12.0.2 6379

修改完配置文件后, 启动容器时需要进行映射 (本地:容器里), 并在启动后读指定的配置文件 (docker logs 容器id -> 能看到报错信息)
docker run -itd --name redis-slave1 -v /usr/server/redisSlave1.conf:/redisConfig/
redisSlave1.conf -p 6380:6380 redis:5.0.5 redis-server /redisConfig/redisSlave1.conf

因为修改了端口 (配置文件中已修改), 所以从节点在启动 redis-cli的时候需要指定端口号
redis-cli -h 127.0.0.1 -p 6380

默认从节点只能读, 不能写

可以在配置文件中增加一行, 从而使得从节点可读可写
slave-read-only no # 指定该服务器可读可写
还有一些配置 能控制主从节点复制的操作
// 主节点的配置
min-slaves-to-write 2
min-slaves-max-1ag 15
第1行的参数表示实现主从复制的从服务器个数最少是2台,第2行的参数表示如果由第1行参数指定的从服务器个数(这里是2台)的心跳延迟时间(lag值)大于15秒,就不执行主从复制。
这两个条件是“或者”的关系,即只要出现从服务器个数小于2,或者2台从服务器的心跳延迟时间大于15秒,主服务器即停止主从复制的操作 (控制主从复制)
相关文章:
主从复制实现Redis集群
主从复制实现Redis集群实验 (一主二从): 实验环境: 使用Docker 搭建 Redis 版本 5.0.5 打开一个终端窗口,在其中运行如下命令创建一个名为redis-master的Redis容器。注意,它的端口是6379 (本地的端口:映射到容器的端口) docker run -itd--name redis-m…...
高分文献解读|3D打印骨支架实现梯度密度颌骨功能性重建
近月,浙江大学医学院附属口腔医院谢志坚教授团队与浙江大学化学系唐睿康教授团队、机械工程学院贺永教授团队合作,在期刊《Advanced Functional Materials》(IF19)上发表题为“A Hierarchical 3D Graft Printed with Nanoink for …...
大型电商日志离线分析系统(一)
一、项目需求分析 某大型网站日志离线分析系统 1.1 概述 该部分的主要目标就是描述本次项目最终七个分析模块的页面展示。 1.2 工作流 在我们的demo展示中,我们使用jqueryecharts的方式调用程序后台提供的rest api接口,获取json数据,然后…...
FL Studio Fruity Edition2024中文入门版Win/Mac
FL Studio Fruity Edition2024是一款功能强大的音乐制作软件,适合初学者和音乐爱好者使用。它提供了丰富的音乐制作工具,包括音频录制、编辑、混音以及MIDI制作等功能,帮助用户轻松创作出动人的音乐作品。 FL Studio 21.2.3 Win-安装包下载如…...
学习vue3第二节(使用vite 创建vue3项目)
使用vite 创建vue3项目 node 安装请移步 node官网: https://nodejs.p2hp.com/ node 版本控制 请移步 nvm官网:https://nvm.uihtm.com/ vite 生成vue项目完整版 请移步 vite官网:https://cn.vitejs.dev/ 1、使用 npm 或者 yarn 创建vue3 项目…...
基于Siamese网络的zero-shot意图分类
原文地址:Zero-Shot Intent Classification with Siamese Networks 通过零样本意图分类有效定位域外意图 2021 年 9 月 24 日 意图识别是面向目标对话系统的一项重要任务。意图识别(有时也称为意图检测)是使用标签对每个用户话语进行分类的任务,该标签…...
Java架构师之路五、微服务:微服务架构、服务注册与发现、服务治理、服务监控、容器化等。
目录 微服务架构: 服务注册与发现: 服务治理: 服务监控: 容器化: 上篇:Java架构师之路四、分布式系统:分布式架构、分布式数据存储、分布式事务、分布式锁、分布式缓存、分布式消息中间件、…...
[计算机网络]--IP协议
前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、IP协议…...
MySQL问题记录
问题 Ubuntu2204 通过 apt 安装 mysql-server8.0.36 后,数次修改密码不生效,仍可无密码登录。 解决 mysql_native_password 是MySQL 5.7及之前版本使用的默认身份验证插件。在MySQL 8.0及更高版本中,默认的身份验证插件 caching_sha2_pass…...
LeetCode_Java_动态规划系列(1)(题目+思路+代码)
目录 斐波那契类型 746.使用最小花费爬楼梯 矩阵 120. 三角形最小路径和 斐波那契类型 746.使用最小花费爬楼梯 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。…...
Linux使用Docker部署在线协作白板WBO并结合内网穿透发布公网远程访问
文章目录 前言1. 部署WBO白板2. 本地访问WBO白板3. Linux 安装cpolar4. 配置WBO公网访问地址5. 公网远程访问WBO白板6. 固定WBO白板公网地址 前言 WBO在线协作白板是一个自由和开源的在线协作白板,允许多个用户同时在一个虚拟的大型白板上画图。该白板对所有线上用…...
petalinux烧写image.ub报错
xinlinx SDK烧写petalinux生成的BOOT.BIN和image.ub时,BOOT.BIN烧写正常,image.ub烧写报错如下 Erase Operation failed. INFO: [Xicom 50-44] Elapsed time 0 sec.ERROR: Flash Operation Failed串口助手操作擦除flash如图: 解决方法&am…...
[足式机器人]Part2 Dr. CAN学习笔记-Ch00-2 - 数学知识基础
本文仅供学习使用 本文参考: B站:DR_CAN 《控制之美(卷1)》 王天威 《控制之美(卷2)》 王天威 Dr. CAN学习笔记-Ch00 - 数学知识基础 Part2 4. Ch0-4 线性时不变系统中的冲激响应与卷积4.1 LIT System:Linear Time Invariant4.2 卷积 Convolution4.3 单位冲激 Unit Impulse—…...
【Linux】head命令使用
head命令 head是一个在 Unix 和 Unix-like 操作系统中常用的命令行工具,用于输出文件的前 n 行。默认为 10,即显示 10 行的内容。 语法 head [options] [file(s)] head命令 -Linux手册页 选项及作用 执行令 : head --help 执行命令结果…...
【书籍分享 • 第三期】虚拟化与容器技术
文章目录 一、本书内容二、读者对象三、编辑推荐四、前言4.1 云计算技术的发展4.2 KVM、Docker4.3 本书内容简介4.4 作者简介 五、粉丝福利 一、本书内容 《虚拟化与容器技术》通过深入浅出的方式介绍KVM虚拟化技术与Docker容器技术的概念、原理及实现方法,内容包括…...
数据结构之:堆
堆(Heap)是计算机科学中的一种特别的完全二叉树结构,它满足某种特定顺序,用于实现优先队列等数据结构。堆主要有两种类型:最大堆(Max Heap)和最小堆(Min Heap)。 定义 …...
助力探索社交出海最短变现路径,融云 1V1 音视频「限时免费」
在社交赛道,1V1 业务是最好的切入点。 对于初创公司来说,1V1 业务的技术成本和运营成本相对可控,并且具备与秀场直播等业务融合拓展的巨大空间。未来,相信 1V1 业务会吸引更多开发者投身其中。 一位社交出海经验丰富的从业者曾在…...
汇编工具理解
当百度读取键盘敲入字符等得到的代码,譬如如下 section .datainput_buffer db 1 ; 保存输入字符的变量section .text global _start_start:mov eax, 3 ; 设置文件描述符为0 (stdin)xor ebx, ebx ; 清空ebx寄存器mov edx, 1 ; 要读取的字…...
Leetcoder Day21| 回溯理论基础+组合
语言:Java/Go 回溯理论基础 回溯函数也就是递归函数; 所有回溯法的问题都可以抽象为树形结构; 回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度,都构成的树的深度。 适用的题…...
备战蓝桥杯Day17 - 链表
链表 基本概念 链表是由一系列节点组成的元素集合。 每个节点包含两部分:数据域 item 、指向下一个节点的指针 next 通过节点之间的相互链接,形成一个链表 1. 链表的初始化 # 手动建立链表 # 链表的初始化 class Node(object):def __init__(self, …...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
