00:00
那这样呢,我们就来看看MYSQL和RA的对比,那么通过前面的讲解我们把它抓下来,那么来进行一下我们对应的对比啊,那么各位同学现在呢,就应该清楚了,以前是只有MYSQL裸奔,现在是不是在MYSQL前面挡了一个我们对应的一个数据库,是不是叫我们的ready,那么这样第一个所有查询先去查。Register,找得到直接返回,不用打扰MYQL,那找不到呢,再去访问我们的MYSQL,但是访问到MYSQL返回数据以后,MYSQL再把缺失的这个数据写回进red,那么在下次是不是又可以在里面查到了,那么这样就给我们的MYSQ进行了减负,OK,所以。我们来看一下与传统的数据库相比。MYQL和red有什么区别?第一个是一种TV建的数据库,MYSQ是什么关系型数据库?OK,因为TV建制队就是哈希map普,它的时间复杂度是不是OE啊,就查一次,就像是我们的什么,按照主键就能查询到你这个K就可以得到这个value,好,这是第一步,第二步ready的数据操作在什么地方,内存上MYSQL呢?
01:17
硬盘上,那么内存快还是硬盘快不言自明,第三,一个red在某些场景中的使用要明显优于MYSQL,比如说计数器排行榜,抢红包,包括我们后续的一些复杂功能,我们用red来实现比用MYSQL来实现方便快捷很多。我们举个最简单的案例,大家都用过的,微信朋友圈点赞玩过吧,哎,那这个时候是不是点一下加个一就行了,那么对于买CQ这种东西而言,你还要考虑是吧,这个什么数据的一致性啊,然后每次点一下都要去更新一条这个数据库update,那么这样的多次IO是不是MYQ性能急剧下降,但是我们用内存数据库register就不存在这种问题,所以说对于互联网的一些。
02:01
高并发、高性能、实时性要求比较高的操作,Register在内存里面肯定是快过在硬盘里面的MYSQL好。第四一个。通常呢,叫。有些特定场景呢,需要和买色Q呢一起配合使用,所以他们两者的关系,切记并不是相互替换和什么竞争的关系,而是共用和配合使用。你可以这么来说,现在你对于我们的数据库层啊,各位亲,那么你可以把它理解为它们两个怎么着合二为一了。他前面有个小秘书,两个合作愉快,对于我们红框框以内的数据库层性能更好,好,这是我们对于我们的第一个最重要的红色部分的red的出现怎么来的,它究竟。解决了哪些痛点?一句话,挡在MYSQL前面,就是他的带刀护卫,帮助MYSQL减负。第二个请看我们的red能干些什么,内存存储和持久化RDB加LF,就说red支持异步的将内存中的数据写到是吗硬盘上,哎,那杨哥你这个以为的是不是打脸了,你自己刚才不是说了吗?他是在什么地方内存里面的?哎,怎么现在又说是到写到硬盘上呢?这你让我们这个小白怎么理解呢?挺好,第一个。
03:24
Red,它活着的时候,所有数据都是在内存,我们就在内存里面,通过查到我们数据肯定要比硬盘快,但是你别忘了,那么RA作为这个服务器,有可能服务器断电了,那么大概内存里面的数据库。全部数据丢失了,那怎么办?那么这个数据一丢失了怎么着?是不是又要把MYSQ的数据重新加载进我们的red,再来做这么一次工作,很烦躁。那么这种情况下,我们有没有一种可能,Red自己也带着一种持久化功能,如果我red关机了,或者服务器断电了,我在内存中的red的数据可以写进我们的硬盘,那么这个时候等我们的red服务器恢复,又可以把硬盘上的数据重新读回我们的register,依旧不麻烦MYQL。
04:14
所以说啊,作为马斯克的小秘书是非常尽职尽责的,那么对于这样的一种诉求干嘛我们呢,在官网上请看。他说了什么?On disc persistence,一句话就是red是支持自身的内存数据持久化到硬盘,如果重新重启,断电了以后,除了异常以后也可以把它从硬盘上重新恢复进内存数据库,不麻烦买SQL,所以这种功能我们在后面有一张叫red持久化,俗称RDB和LF,这个就是我们red进行高可用内存数据查询和存储保障的一个重要支撑功能,所以要给同学们讲清楚。
05:02
你这些知识哪来的?每一章对应的是什么?好,那么接下来继续,那么作为一个什么分布式的内存数据库,它必须是高可用、高性能的,那么这个时候我们就会来这么一个问题。什么单机好说?那杨哥我想问一下啊,假设有一天这个挂了,那就麻烦了大哥,各位亲。这个时候,以前我的请求是先去找red red找得到我就直接返回了,不麻烦买色Q,那么现在这个red挂了,那是不是就跟又变成以前一样,马斯克裸奔了,咣咣咣咣咣,一堆请求是不是打到马斯克上面,那么这种情况下是不是会出现我们后续将要介绍和学习的,要预防满Q的什么穿透啊,击穿啊,雪崩啊等等,那么自然而然,我们尽量要避免这种情况出现,你一个red死了,整个系统,整个红框框的内容就瘫了,那怎么办?那弟兄们。
06:06
我们大家呢,都清楚啊,尽量的是不是就要多搞几台red挡在MYSQL的前面,弟兄们没问题吧,那么这样的话呢,得到一个什么结论,就是说某一台red挂了,依旧不影响我们内存数据库,我们这个缓存。架构的集群设计,所以ready就会支持从单机到主从到哨兵到集群,那么这样也就引出了我们后面为什么要学这些什么主从复制red,哨兵red集群,说白了就是从这一台red挂了,不能影响我们的内存,数据库,系统照旧照打,高可用架构的落地保障,OK,好,我们同学们,所以说呢,一开始从理论到后面的实操,再到后面的总结,我要一步一步的告诉各位小白,那么这些功能我们为什么要学他拿来干什么?好吧,说人话,一台买red挡不住了,那是不是一堆red?好,那么接下来red呢,还能做。
07:12
这些东东对吧?它的预防和处理,刚才说白了就说那个避免一台ready死了再重新去找马的麻烦,那么再来什么东东,分布式锁,那么一说所学过家伙都知道snchize lock and lock,那么分布式的情况下,因为我们大家都清楚red和我们的GVM是两回事,那么你的S种关键词是不是只对GVM?这个地盘起效,那么对于跨服务器的要加锁怎么办呢?那么red也能实现是吧?分布式锁好再来第六种功能队列,那么别忘了,我们刚才已经说过了,官网上是不是有什么?String list map stream set set等等等等,是不是有各种各样的数据类型啊,那么对于某些功能,比如说微博的。
08:04
点赞朋友圈点赞抖音的今日打赏的榜一榜二榜三榜四榜五的前五名的大哥,然后包括发红包是吧,各种红包进到一个队列里面,那么坦白讲,如果说是队列,那么弟兄们是不是就是我们的list塔,哎,如果是什么要打板的话,是不是我们一个带着一个分数的一个set?哎,对于这种诉求,那么用我们的red来做就会比用MY来做更加的方便,所以我们来看red。它提供了那些其他的复杂的数据结构,对吧?我们在这儿也说过了,提供了这些那么多数据结构,所以后面有一章我们就会明白,我们要用这些list set的数据结构做一个很好的消息平台来使用,那么red队列还可以做这个购买限制啊,啊节假日推广,做双11促销,进行一些实时活动的时候来,那么假如说啊,我们在red set,我们大家都收发过,那什么下发验证码,那么在这个set里面是无序无重复的,那么这说明什么?
09:05
我们如果给用户手机注册也好,或者登录的时候下发一个验证码,我们先是不是先提前存取一篇数据到red set结构一,因为set是无序无重复的,类似于我,有点类似于我们的哈希赛,那么这样的话呢,是不是保证我们的验证码短信码下发的时候就从red出去一个,诶这样的话是不是就非常的方便比。用MYSQL来实现更加的。简洁和搞笑好那么再来排行榜还有点赞等等,那么互联网当心当中是吧,我们要各种的电商网站的促销排行,社交礼品的排行等等小程序投票我们都可以用this set来处理,OK好那么还有其他的更多的功能所以说对于我们的write为什么到后面我们有这么多章内容哎,那么就给同学们说一下它真的是目前是什么?出门旅游杀人越货,居家必备的缓存良药,同学们务必掌握那么接下来我们来吧兄弟们咱们呢意图总功能概述一下我们前面所讲的来ready解释那么它。
10:14
就是一个内存数据库,但是它能干的活。那么来吧,首先。它呢是一个TV建制队,那么TV建制队的话呢,它呢包含了string bit map bit field,各种各样的十大数据类型,OK,由于这种丰富多彩的数据类型,保证了我们可以玩取一些互联网诉求下面的高性能高可靠的功能,那么第二个我们大家都清楚,它呢对于我们在这儿就支持什么我们的。持久化,那么这个fork的意思是不是单独拉了一个线程,默默的来进行这个备份,那么再来又支持register cster集群,那么就是刚才我们所说的,如果一台机器不够了,我是不是上一堆,那么变成主从复制了以后,这个red的高性能高可过框架是不是就出来了么?再来了,那么red安装完了以后,默认的是不是就是一个一主一层,哎,然后呢,我们呢,假设red死了,我们可不可以从从器这又上位获得一台red主机的保存和变更呢?那么来了red的哨兵,来,来,这是我们的red的持久化RDB和AF,那么这张图说穿了就是我们官网上这段话的全部红框框内的全部总结,所以red能干些什么?这张图给大家说的很清楚一。
我来说两句