当前位置: 首页 > news >正文

REDIS主从配置

目录

前言

一、概述

二、作用

三、缺点

四、redis主从复制的流程

五、搭建redis主从复制

总结



前言

Redis的主从配置是指在Redis集群中,将一个Redis节点配置为主节点(master),其他节点配置为从节点(slave),主节点负责写操作和部分读操作,从节点负责读操作。
主从配置的作用主要有以下几点:


提高读写性能:主节点负责写操作,从节点负责读操作,实现了读写分离,有效提高了系统的读写性能。从节点可以接受主节点的复制数据,这样读操作可以在从节点上执行,减轻了主节点的负载。


提高可用性:主节点故障时,从节点可以接替主节点的角色,继续提供服务。当主节点恢复后,可以重新加入集群,重新成为从节点,保证了系统的高可用性。


数据备份:从节点通过复制主节点的数据,实现了数据的备份。当主节点故障时,从节点可以提供最新的数据,避免数据丢失。


故障恢复:当主节点故障时,可以通过从节点快速恢复主节点的数据。从节点会自动发现并选举一个新的主节点,保证系统的正常运行。


扩展性:通过增加从节点,可以提高系统的读取性能和容量。当系统需求增加时,可以通过增加从节点来扩展系统的处理能力。


总的来说,主从配置可以提高Redis集群的性能、可用性和扩展性,保证数据的备份和故障恢复。
 


一、概述

redis主从复制是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。

二、作用

数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。

故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。

负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。

高可用:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

三、缺点

故障恢复无法自动化;

写操作无法负载均衡;

存储能力受到单机的限制。

四、redis主从复制的流程

第一步:若启动一个Slave机器进程,则它会向Master机器发送一个“sync command”命令,请求同步接。

第二步:无论是第一次连接还是重新连接,Master机器都会启动一个后台进程,将数据快照保存到数据文件中(执行rdb操作),同时Master还会记录修改数据的所有命令并缓存在数据文件中。 

第三步:后台进程完成缓存操作之后,Maste机器就会向Slave机器发送数据文件,Slave端机器将数据文件保存到硬盘上,然后将其加载到内存中,接着Master机器就会将修改数据的所有操作一并发送给Slave端机器。若Slave出现故障导致宕机,则恢复正常后会自动重新连接。

第四步:Master机器收到Slave端机器的连接后,将其完整的数据文件发送给Slave端机器,如果Mater同时收到多个Slave发来的同步请求,则Master会在后台启动一个进程以保存数据文件,然后将其发送给所有的Slave端机器,确保所有的Slave端机器都正常。

五、搭建redis主从复制

我们搭建一主三从的模式

1.在主服务上的操作

修改配置文件vim /etc/redis.conf

设置监听地址

关闭保护模块

设置允许后台运行

重启服务,查看端口

[root@localhost ~]# vim /etc/redis.conf 
[root@localhost ~]# systemctl restart redis
[root@localhost ~]# netstat -anput |grep redis
tcp        0      0 192.168.73.10:6379      0.0.0.0:*               LISTEN      12833/redis-server  
[root@localhost ~]# 

2.在从上的操作

将 配置文件redis.conf 拷贝,并以端口号命令例如

[root@localhost etc]# cp redis.conf /opt/redis_6380.conf
[root@localhost etc]# cp redis.conf /opt/redis_6381.conf
[root@localhost etc]# cp redis.conf /opt/redis_6382.conf
[root@localhost etc]# 

分别编辑他们需要修改的内容

修改配置文件
    bind  0.0.0.0
    port  不同的端口号
    protected-mode = no
    daemonize = yes
    slaveof 主的IP 主的端口

编辑完成之将主从全部启动,并验证

[root@localhost etc]# cp redis.conf /opt/redis_6380.conf
[root@localhost etc]# cp redis.conf /opt/redis_6381.conf
[root@localhost etc]# cp redis.conf /opt/redis_6382.conf
[root@localhost etc]# vim /opt/redis_6380.conf 
[root@localhost etc]# vim /opt/redis_6381.conf 
[root@localhost etc]# vim /opt/redis_6382.conf 
[root@localhost etc]# redis-server /opt/redis_6380.conf 
[root@localhost etc]# redis-server /opt/redis_6381.conf 
[root@localhost etc]# redis-server /opt/redis_6382.conf 
[root@localhost etc]# netstat -anput |grep redis
tcp        0      0 192.168.73.10:6379      0.0.0.0:*               LISTEN      12833/redis-server  
tcp        0      0 0.0.0.0:6380            0.0.0.0:*               LISTEN      13699/redis-server  
tcp        0      0 0.0.0.0:6381            0.0.0.0:*               LISTEN      13711/redis-server  
tcp        0      0 0.0.0.0:6382            0.0.0.0:*               LISTEN      13723/redis-server  
tcp        0      0 192.168.73.10:37065     192.168.73.10:6379      ESTABLISHED 13723/redis-server  
tcp        0      0 192.168.73.10:34195     192.168.73.10:6379      ESTABLISHED 13699/redis-server  
tcp        0      0 192.168.73.10:6379      192.168.73.10:37065     ESTABLISHED 12833/redis-server  
tcp        0      0 192.168.73.10:6379      192.168.73.10:34195     ESTABLISHED 12833/redis-server  
tcp        0      0 192.168.73.10:46341     192.168.73.10:6379      ESTABLISHED 13711/redis-server  
tcp        0      0 192.168.73.10:6379      192.168.73.10:46341     ESTABLISHED 12833/redis-server  
[root@localhost etc]# 

3、验证

使用redis-cli命令行登录redis服务器,输入role指令查看状态

[root@localhost etc]# redis-cli -h 192.168.73.10 -p 6379
192.168.73.10:6379> role
1) "master"
2) (integer) 435
3) 1) 1) "192.168.73.10"2) "6380"3) "435"2) 1) "192.168.73.10"2) "6381"3) "435"3) 1) "192.168.73.10"2) "6382"3) "435"
192.168.73.10:6379> 

在master节点上,录入数据,在slave节点上查看到对应数据即可

master录入

192.168.73.10:6379> set hy hy
OK
192.168.73.10:6379> get hy
"hy"
192.168.73.10:6379> 

slave查看

[root@localhost etc]# redis-cli -h 192.168.73.10 -p 6380
192.168.73.10:6380> get hy
"hy"
192.168.73.10:6380> exit
[root@localhost etc]# redis-cli -h 192.168.73.10 -p 6381
192.168.73.10:6381> get hy
"hy"
192.168.73.10:6381> exit
[root@localhost etc]# redis-cli -h 192.168.73.10 -p 6382
192.168.73.10:6382> get hy
"hy"
192.168.73.10:6382> 

验证成功


总结

在配置主从复制上大家要注意的是配置项的修改

master服务器需要改的地方:

bind  监听地址
port  端口
protected-mode = no
daemonize = yes

slave需要修改的是

bind  监听地址
port  6380
protected-mode = no
daemonize = yes
slaveof 192.168.115.160 6379

并且需要注意去监听端口。

相关文章:

REDIS主从配置

目录 前言 一、概述 二、作用 三、缺点 四、redis主从复制的流程 五、搭建redis主从复制 总结 前言 Redis的主从配置是指在Redis集群中,将一个Redis节点配置为主节点(master),其他节点配置为从节点(slave)…...

【测试】软件测试工具JMeter简单用法

简明扼要,点到为止。 1. JMeter介绍 JMeter的全称是Apache JMeter,是一款用于软件测试的工具软件,其是开源免费的,由Apache基金会运营。 官网:Apache JMeter - Apache JMeter™ 2. 下载安装及运行 2.1 安装 Java8…...

五个授权关键,为智能驾驶量产赋能

站在风口浪尖的智能驾驶行业? 智能汽车是指通过搭载先进传感器等装置,运用人工智能等新技术,具有自动驾驶功能,逐步成为智能移动空间和应用终端的新一代汽车。集中运用了计算机、现代传感、信息融合、通讯、人工智能及自动控制等技…...

【代码随想录-Leetcode第三题:977. 有序数组的平方】

题目 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输入:nums [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组…...

[运维|中间件] Apache APISIX Dashboard部署(持续踩坑更新。。。)

参考文献 Apache APISIX v2.6 官方文档 APISIX、APISIX Dashboard搭建、路由配置及插件使用 安装apisix和apisix-dashboard,访问方式,测试路由转发,反向代理等 文档地址 Dashboard Doc 下载地址 Apache APISIX Dashboard下载地址 部署 …...

Vue中watch监听属性新旧值相同问题解决方案

侦听器 _watch: 作用:可以侦听data和computed中数据的变化. 语法 watch: { "被侦听的属性名" (newVal, oldVal){ } } 监听简单数据类型时可以直接使用,而监听复杂数据类型时,例如当我们只需要监听data或者computed中对象的某个属性时,可以使用字符串的形式进行监听…...

awk案例练习

目录 一、awk练习 1.1筛选ip地址 1.2字段去重 1.3次数统计 1.4统计TCP连接状态 1.5处理字段缺失的数据 1.6筛选给定时间范围内的日志 一、awk练习 1.1筛选ip地址 ifconfig命令查看IP 利用awk进行筛选 ifconfig | awk BEGIN{RS""}NR2{print $6} RS指定输入记…...

Debian 12.1 正式发布

导读Debian 12.1 现已发布,这是对稳定发行版 Debian 12(代号 Bookworm )的首次更新。本次发布主要增加了安全问题的修正,并对严重问题进行了一些调整。 一些更新内容包括: 妥善处理系统用户的创建;修复 eq…...

neo4j清空数据库

清空所有Person、 Movie节点及其所有关系 MATCH (a:Person), (m:Movie) OPTIONAL MATCH (a)-[r1]-(), (m)-[r2]-() DELETE a,r1,m,r2 查询任意数据 MATCH (n) RETURN n 如果没有, 就说明已经删除成功了 这段代码是用Cypher查询语言编写的,用于清空…...

SpringBoot整合Mybatis-Plus

文章目录 前言一、Mybatis-Plus简介二、框架结构三、SpringBoot整合Mybatis-Plus1.依赖2.配置文件设置 四、前期准备4.1数据库信息4.2dao类4.3pojo类 五、常用注解5.1 TableName(value "")5.2 TableId(value"",type IdType.XXX)5.3 TableField("&qu…...

在langchain中使用自定义example selector

在langchain中使用自定义example selector 简介 在之前的文章中,我们提到了可以在跟大模型交互的时候,给大模型提供一些具体的例子内容,方便大模型从这些内容中获取想要的答案。这种方便的机制在langchain中叫做FewShotPromptTemplate。 如…...

pytest常用执行参数详解

1. 查看pytest所有可用参数 我们可以通过pytest -h来查看所有可用参数。 从图中可以看出,pytest的参数有很多,下面是归纳一些常用的参数: -s:输出调试信息,包括print打印的信息。 -v:显示更详细的信息。 …...

本地项目如何连接git远程仓库

在本地新建项目后,如何连接git远程仓库呢?步骤如下: 第一步, 首先我们在git上新建仓库,设置模板可勾选Readme文件。(readme文件的创建是为了介绍所写代码的一些详细信息,为了之后更好的维护。)…...

力扣 494. 目标和

题目来源:https://leetcode.cn/problems/target-sum/description/ C题解(来源代码随想录):将该问题转为01背包问题。 假设加法的总和为x,那么减法对应的总和就是sum - x。所以我们要求的是 x - (sum - x) target。x …...

Maven-搭建私有仓库

使用NEXUS REPOSITORY MANAGER 3在Windows上搭建私有仓库。 NEXUS REPOSITORY MANAGER 3 是一个仓库管理系统。 下载NEXUS3 官网上是无法下载的,所以网上搜nexus-3.18.1-01-win64就能搜到,下载即可。 安装NEXUS3 下载nexus-3.18.0-01-win64.zip至相应目录下(路径不要有中文)。 …...

PostgreSql 参数配置

一、访问控制参数配置 https://xiaosonggong.blog.csdn.net/article/details/124264877 二、数据库参数配置 2.1 概述 PostgreSQL 的参数配置参数是在 postgresql.conf 文件中集中管理的,类似于 Oracle 的 pfile 文件,除此之外,PostgreSQL…...

【BMC】OpenBMC开发基础2:修改原有程序

修改原有程序 通常情况下我们会需要修改OpenBMC原有的程序来适配我们的项目,本节将介绍一般的流程。 为此首先我们需要了解devtool这个工具,注意它不是前端开发用的那个devtool,而是由OE(或者Yocto?)提供…...

2012年数学建模竞赛脑卒中发病环境因素分析及干预日期数据处理代码

因四个表格日期数据处理有些复杂,故作此代码一次性处理四组数据: import datetime import pandas as pddef check(string, df, i, num, error_list):if is_valid(pd.to_datetime(string, errorscoerce, format%Y/%m/%d), error_list, i):df.iloc[i, nu…...

Merge和Rebase的区别

Merge 和 Rebase 是 Git 中常用的两种分支整合方式,它们具有不同的工作原理和效果: Merge(合并) 合并是将两个或多个分支的提交历史合并为一个新的提交。在合并时,Git 会创建一个新的合并提交,将两个分支…...

[RTKLIB]模糊度固定相关问题(二)

文章目录 一、固定模糊度的前置工作1. 做好固定模糊度的准备2. 建立双差模糊度3. 问题与总结 版权声明:本文为原创文章,版权归 Winston Qu 所有,转载请注明出处。 在上一篇文章中,介绍了RTKLIB中manage_amb_LAMBDA()函数&#xff…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...