百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

「大厂必备」系列之Redis主从、持久化、哨兵

mhr18 2024-11-18 14:32 20 浏览 0 评论

想想这些干货,本来你要花点银子别人才会告诉你的,但是在我这里完全可以白嫖,是真正白嫖的那种哈!

我们知道Redis是基于内存的单进程单线程模型的工作模式,单机可以轻松达到10w+QPS,因为是基于内存操作的,所以极快,标准的秒男,哈哈哈……

主从复制

但是光快也不行啊,因为随着业务的发展,一个机器是完全不足以支持业务发展的,毕竟,没有老板会希望自己的产品永远只用单机,要规模化,标准化,大量的。

咱们是要在大厂搬砖的人,当然是要搞上万台机器的那种啦。

所以,这时候就需要用到Redis集群了,也就是Redis Cluster模式,通过主从同步,读写分离,将大量的机器组织起来,从而为更多的用户提供服务。

我们可以部署一台主服务器,多台从服务器,主服务器只处理写请求,从服务器通过复制功能同步主服务器的数据,只处理读请求,以此提升Redis的服务能力。

但是机器一多,就像公司里的员工一样,多了就不好管理了,所以,就需要有一套很好的协作机制,来让它们配合工作,从而发挥更大的能量。

这套协作机制就是数据同步,具体工作过程如下:

当你启动一台Slave的时候,它会发送一个psync命令给Master,这时候master就会启动一个线程,生成RDB快照,同时把新的写请求缓存在内存中,当RDB文件生成后,master会将这个RDB文件发送给slave,slave拿到之后首先写进磁盘,然后加载到内存,然后master就会把内存里面缓存的那些命令发给slave,这样就完成了数据的同步。

但是人有旦夕祸福,天有不测风云,万一同步数据的过程中突然断电断网了怎么办?

不用担心,Redis这个猛男还是很顾家的,他会自动重连,然后把少的数据补上,嗯,真是个好男人!

持久化

我们知道Redis是一个内存数据库,作为经常使用电脑的网虫,我们知道,当机器重启之后内存中的数据就会丢失,所以,持久化很重要啦!

就像很多妹子嘴上说着不喜欢渣男,但是渣男带来的刺激和新鲜感还是让人欲罢不能,嘴里说着不要,身体却很诚实,哈哈哈……

但Redis人家可是一个标准的好男人,你的锅他都给你接……

Redis主要有两种持久化方式,一种是RDB方式,另一种是AOF方式。

RDB会保存某一个时间点之前的数据;

AOF会保存Redis执行的每一条命令;

虽然两种方式都可以把数据持久化到磁盘上,但就像两个渣男一样,终究还是有对比的。

RDB

优点

就是其保存的是一个时间点的数据,如果出现了故障,丢失的只是从最后一次RDB执行时间点到故障发生的时间间隔之内的数据。这个优点就特别适合用来做冷备,一般运维都会设置一个定时任务,将数据定时同步到其它机器上,比如将杭州的数据备份到上海,将西安的数据备份到石家庄。万一那个地方的机器挂了,你想恢复任何时间点之前的数据,只需拷贝一份就好了。

而且它恢复的速度很快,同时对性能的影响也很小。

缺点

就是如果数据量很大,QPS很高,那么执行一次RDB需要的时间会相应增加。

AOF

优点

就是他会把服务端执行的每一条命令都保存在文件中,理论上可以做到发生故障时只丢失一条命令。也就是说它的数据安全性更高了。

缺点

就是如果Redis有大量的修改操作,RDB中一个数据的最终态可能会需要大量的命令才能达到,这会造成AOF文件过大并且加载时速度过慢。

而且AOF文件的加载需要先创建一个伪客户端,然后把命令一条条发送给Redis服务端,服务端再完整执行一遍相应的命令,想想就很抓头了!

这个时候该如何选择呢?

就像妹子既喜欢渣男带来的刺激,又想找个老实人过日子,该如何抉择呢?那就只能选我这种既渣又骚又顾家的男人了,哈哈哈……

同理,Redis也是这样一个既骚又成熟的男人,推荐使用RDB和AOF混合持久化方案,这样,在进行AOF重写时子进程将当前时间点的数据快照保存为RDB文件格式,而后将父进程累积命令保存为AOF,这样就能既快有完整了。

哨兵

哨兵,顾名思义就是放哨、观察敌情的,保证大家安全的人。

而Redis的哨兵机制,就是保障Redis的高可用,可以在Redis Master发生故障时自动选择一个Redis Slave切换为Master,继续对外提供服务。

相当于大当家的不幸身亡了,总不能群龙无首吧,这时候大家要再选择一个比较有威望的兄弟当老大了。

这就是大名鼎鼎的sentinel部署方案

图中有一个Redis Master,该Master下有两个Slave。3个哨兵同时与Master和Slave建立连接,并且哨兵之间也互相建立了连接。

哨兵通过与Master和Slave的通信,能够清楚每个Redis服务的健康状态

而且实际中至少会部署三个以上哨兵,并且哨兵数量最好是奇数个。这是因为如果首先Redis sentinel是为了保障系统高可用,保障不出现单兵作战的困境,所以至少三个,而奇数个是为了保障在选老大的时候不会出现同时选出两个老大的情况。

总结

OK,这期文章可真是精华,几乎是进入大厂的必备板砖之一,写到最后,我都不忍心发出来了,哈哈哈……

相关推荐

【推荐】一个开源免费、AI 驱动的智能数据管理系统,支持多数据库

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!.前言在当今数据驱动的时代,高效、智能地管理数据已成为企业和个人不可或缺的能力。为了满足这一需求,我们推出了这款开...

Pure Storage推出统一数据管理云平台及新闪存阵列

PureStorage公司今日推出企业数据云(EnterpriseDataCloud),称其为组织在混合环境中存储、管理和使用数据方式的全面架构升级。该公司表示,EDC使组织能够在本地、云端和混...

对Java学习的10条建议(对java课程的建议)

不少Java的初学者一开始都是信心满满准备迎接挑战,但是经过一段时间的学习之后,多少都会碰到各种挫败,以下北风网就总结一些对于初学者非常有用的建议,希望能够给他们解决现实中的问题。Java编程的准备:...

SQLShift 重大更新:Oracle→PostgreSQL 存储过程转换功能上线!

官网:https://sqlshift.cn/6月,SQLShift迎来重大版本更新!作为国内首个支持Oracle->OceanBase存储过程智能转换的工具,SQLShift在过去一...

JDK21有没有什么稳定、简单又强势的特性?

佳未阿里云开发者2025年03月05日08:30浙江阿里妹导读这篇文章主要介绍了Java虚拟线程的发展及其在AJDK中的实现和优化。阅前声明:本文介绍的内容基于AJDK21.0.5[1]以及以上...

「松勤软件测试」网站总出现404 bug?总结8个原因,不信解决不了

在进行网站测试的时候,有没有碰到过网站崩溃,打不开,出现404错误等各种现象,如果你碰到了,那么恭喜你,你的网站出问题了,是什么原因导致网站出问题呢,根据松勤软件测试的总结如下:01数据库中的表空间不...

Java面试题及答案最全总结(2025版)

大家好,我是Java面试陪考员最近很多小伙伴在忙着找工作,给大家整理了一份非常全面的Java面试题及答案。涉及的内容非常全面,包含:Spring、MySQL、JVM、Redis、Linux、Sprin...

数据库日常运维工作内容(数据库日常运维 工作内容)

#数据库日常运维工作包括哪些内容?#数据库日常运维工作是一个涵盖多个层面的综合性任务,以下是详细的分类和内容说明:一、数据库运维核心工作监控与告警性能监控:实时监控CPU、内存、I/O、连接数、锁等待...

分布式之系统底层原理(上)(底层分布式技术)

作者:allanpan,腾讯IEG高级后台工程师导言分布式事务是分布式系统必不可少的组成部分,基本上只要实现一个分布式系统就逃不开对分布式事务的支持。本文从分布式事务这个概念切入,尝试对分布式事务...

oracle 死锁了怎么办?kill 进程 直接上干货

1、查看死锁是否存在selectusername,lockwait,status,machine,programfromv$sessionwheresidin(selectsession...

SpringBoot 各种分页查询方式详解(全网最全)

一、分页查询基础概念与原理1.1什么是分页查询分页查询是指将大量数据分割成多个小块(页)进行展示的技术,它是现代Web应用中必不可少的功能。想象一下你去图书馆找书,如果所有书都堆在一张桌子上,你很难...

《战场兄弟》全事件攻略 一般事件合同事件红装及隐藏职业攻略

《战场兄弟》全事件攻略,一般事件合同事件红装及隐藏职业攻略。《战场兄弟》事件奖励,事件条件。《战场兄弟》是OverhypeStudios制作发行的一款由xcom和桌游为灵感来源,以中世纪、低魔奇幻为...

LoadRunner(loadrunner录制不到脚本)

一、核心组件与工作流程LoadRunner性能测试工具-并发测试-正版软件下载-使用教程-价格-官方代理商的架构围绕三大核心组件构建,形成完整测试闭环:VirtualUserGenerator(...

Redis数据类型介绍(redis 数据类型)

介绍Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sortedset:有序集合)。1、字符串类型概述1.1、数据类型Redis支持...

RMAN备份监控及优化总结(rman备份原理)

今天主要介绍一下如何对RMAN备份监控及优化,这里就不讲rman备份的一些原理了,仅供参考。一、监控RMAN备份1、确定备份源与备份设备的最大速度从磁盘读的速度和磁带写的带度、备份的速度不可能超出这两...

取消回复欢迎 发表评论: