00:00
好,各位同学,接下来我们明白了red是什么,那么我们来了解一下能干什么,那么大家都清楚。我为什么要学习这个技术啊?它有什么好处,给我解决了什么痛点,什么情况下我们引入了这个技术的,它应该放在哪?它的定位是什么好?那么带着这些问题,那么呢,结合我们的学习方法来。AB法走起,那么各位同学来吧,我又拿到一个新技术了。咋整?那么这个是before对吧?这个呢,是引入RA之后,After杨哥,请给我比较两个有什么好,请给我证明red它能干什么,它能解决什么痛点?AB学习法来第一个。我们首先在学习之前。他能干什么?回到我们刚才的对red的定义来,那么首先啊,找到我们的red,那假设啊,这个是这个原作者的他的get账号,那么来吧,根据刚才啊一回车我们已经看了我们red的官网啊,来在这官网解释,那么弟兄们这段红色的标配我也给大家翻译了,那么来。
01:17
我们来看看安特雷斯在官网上他个人账号下面它对red的定位,首先red是一种什么?基于内存的数据库,并且可以被持久化到磁盘上,那么它的数据模式是一种TV建制,对的key value,并且还拥有许多种类型,比如说string list等等等等等等,对吧?刚才呢,官网上也介绍,那么从这。我们对于red的定义,首先我们呢?一句话。是什么?这是它的官网。对应的名词啊,弟兄们,没问题吧?那么在这我们至少得到一个结论,那么就是说它是什么?
02:05
基于什么地方内存的一种什么KV键值对。内存数据库,好,通过安特雷兹它的设计思路,Red支付,他告诉你了在哪内存,第二个什么TV禁止,对,OK好了。刷回来,现在假设我们没有red这个技术,通过这我们可以看到database,那么没有red的话,在座各位都会清楚,对于我们互联网程序员而言,一定会清楚现在主流的数据库是不是MYSQL好了。随着我们高性能、高频发业务的诉求,MYSQL慢慢的它会到达一个瓶颈。要么。自我变化变得更牛逼。比如说现在的主流八。
03:03
变成9READY10能够通通包圆啊,你找我就行了,但是呢,大家都清楚,向内求的话,Ready几乎也已经快到极限了,那第二个内部提升有限了,以后我是不是可以外部。请求外援,比如说我作为一个总经理。我现在工作特别繁忙,那我会怎么办?是不是找一个副总或者找一个秘书来分担我的工作,对吧?那么自然而然我们呢,内部已经撑不住了,自然而然。向外求,所以我们这儿得到第一个结论,为什么会引入了我们的?这门技术它的主流功能。第一点。是一种分布式内存,或者叫分布式缓存,是挡在马赛克速度据库之前的带刀护卫,但是对不起哦。我们要搞清楚,你想替MYQ分担,挡在我前面,他也不是是个人,什么阿猫阿狗就能来到第一个,我们来看看啊,它的性能要求,因为MYSQ撑不住了,对吧?所以说需要能够减负,我们首先从液负上,MYSQ为什么扛不住了呢?那么大家都会明白,主流的应用按照二八原则的。
04:25
诉求80%都一个系统的访问都是查询,对吧,你可能逛淘宝逛的多,但是你不会说天天是吧,你下单比你逛的还多,这个有点不大可能。20%是写入操作对吧,那么所以说我们现在是不是希望能够达到一种。平衡读写分离,MYSQL主要是做什么存储,那么它保证了一致性,它在什么地方啊,硬盘对不对?好了,那么这个呢是我的特性,那么下面我们就要保证,如果MYSQ扛不住了,你能够帮我分担,那么起码你的同质化的要求就非常高,换句话说,我买这克能做的你要能做,我买这课不能做的你也要能做,能够帮我减负,对吧?所以说我们来看看维度,第一个从硬件上。
05:20
对吧?那么我们希望呢?首先要比MYSQL更强,MYSQL已经是硬盘了,那么自然而然什么地方比硬盘更快,那么是不是我们的内存?这这么说OK,所以red安特雷斯直接告诉你,我们的red在什么地方,在内存上,内存的访问从IO上当然要比硬盘要快,这是第一个,第二个查询上啥意思啊?那么MYSQL假设它的数据很多很多,那么我怎么查的快,MYSQL大家都清楚啊。Select芙蓉,比如说某张表,那么这样一查什么情况?是不是俗称最恐怖的全表扫描?
06:03
对吧,那么我们怎么保证满色就差的快,那么这个时候我们是不是一般会说我要ID等于多少多少,这种情况下咋整,从语法上是不是叫按照主键查询对不对?那么也就是我们的KV模型,那么一说到KV模型,那么只要是Java程序员一定会想到是不是有一个东西叫哈希map,那么基于此啊,为了保证你。查的快从硬件上,一个在硬盘,一个在内存,第二个从语法上怎么着,我明白了,查的快主要是有一个主见,Value不相关,Value就是个结算串,所以RA直接告诉你我是一种基于什么K键值对的,所以它的语法。经典的就是什么get开机。Get key直接获得数据,所以说呢,它呢查的快,第二个就是什么。
07:01
关系的处理。第三一点啊,那么什么叫关系的处理呢?各位亲,它的情况是这样的,对于我们的MYSQL是不是叫传统的RDBMS啊,也就是叫我们的传统的关系性数据库,那么你查的慢,还有一种情况什么?是不是有一些什么主键和外键的约束,但是呢,Red呢,没有这些痛苦,哥们,我就是K建支队,所以呢我呢是对MYSQ的一种更多的充分的加强和补充,我write还有一个名词是不是叫no s数据库这样的一种。概念OK,所以说叫not only的意思,换句话说,我red跟MY是叫数据库,但是MY是叫传统的RDBMS叫传统的关系型数据库,但是我MYCQL呢是叫什么KV建制对内存数据库,OK,所以呢,从根子上也做了一定的变更,那么结合此从硬件,从查询,从关系的处理这三个维度,那么我们就达成了我们的。
08:09
出现的意义,把MYSQL减负。下面同学们请看。它的模型是这样的,以前有什么事通通去找MYCQ,现在MYSQ已经不堪重负,扛不住了大哥。帮帮我,总裁前面有个总裁秘书,OK,那么所以说我们的请求就过来了,首先大部分的对业务系统的操作都是什么查询操作,那么下面第一步我就不再去找MYQ,有什么事我先去找red,先去看看red里面有没有,如果在red缓存里面命中了,直接就反馈给你了,那么这样MYQ。这个访问量,它的负担是不是被大大减轻,大大缓解了,这是第一点。第二个。我们来看一下,如果说register没有怎么办呢?那么这个时候我干嘛?我们register里面找不到,那么我再去反问我们的MYOK,如果说MYQ又会有了,那么好说。
09:12
这个时候我们就会把这个数据回写进red,那么到第三次来的时候干嘛?我们依旧反问,刚才在write词里面找不到,我再去找我的MYSQL,现在我在writes里面找到了,我就不再麻烦我的MYSQL了。那么这样逐个。
我来说两句