00:00
嗨,同学们,接下来我们看一下这个NGS外置内存缓存啊,顾名思义它是要外置的,它要脱离NG,我们前面给大家讲的这个基于内存式的缓存呢,它要占用NG这台机器的这个内存空间啊,甚至它会直接占用NG的内存空间。那么在单机上做扩容的时候,非常容易遇到这个内存制的瓶颈啊,一旦内存如果要是被炸满了,很难再去通过呃这个低廉的价格去呃提升这个呃内存的容量,呃之前就给大家讲过扩容,你把64G的内存扩展到128G,这可能只是呃买内存条我插上就可以了。啊,128扩展到256,这可能就需要我们的主板支持了,那你的主板就得换啊,256扩展到512512扩展到1T2T的内存,那整套这个硬件的方案可能都得换。那么我们呃,可以通过这种外置内存值的缓存来解决这个硬件的这个价格上涨的问题,也就是不在我们当前NG机器上再去做这个,呃,这个优化了,而是增加额外的机器通过网络去访问,当我们去缓存的这个数据的内容量啊比较大的时候,那必须要把它存到我的缓存里的时候啊,我这会儿就可以考虑额外再加一台机器,然后让NG个存去访问这台机器啊,那在这个外置缓存使用的这个缓存存储方案上呢?
01:21
呃,现在也是比较成熟的,或者说非常成熟了,比如说现在呃非常知名的memory catch的呃,Red这两种缓存的中间件,呃都是现在非常主流,而且自身的可用性啊和功能呢也都比较呃也都比较可靠。那么在这个外置缓存的时候呢,呃,我们就可以独立的去部署一台机器了,那这台机上的内存呢,基本上就可以被我们去独享了,如果这台一台机器还不够用的话,还可以再去部署集群嘛,那么这上边我们搞了这么大的内存,要存点啥呢?啊,其实就有很多的这个数据库里的,呃,这些表的这些数据呢,我们就可以把它扔到这个内存里了,来提高它的呃访问速度啊在这个呃,后端的这个数据存储呢,让他前置一步啊,这些数据呢,通常也都是被经常访问到的啊,这些数据啊,比如说像一些用户表数据啊,呃商电商系统里的这个商品数据啊一些这个呃不太。
02:21
呃,发生变化的这种,呃,这种菜单数据啊,权限数据啊等等等等这些我们全部都可以把它放到我们的这个,呃,内存的这个缓这个缓存区里,那放进去之后,如果要是我们的后端服务发生变化之后啊,就是他改了这个数据库里的数据,那我们怎么去同步它呢?啊,那这会其实就可以去做这种呃,多级的这种多写同步啊,就是把它创建成一个事物嘛,啊,如果要是用Java写的啊,或者是什么PHP写的,其实都可以去支持事物,就是双写来保证呃多机的这个数据一致性,我既往。呃,缓存服务器里去更新这个缓存数据,同时呢,也像我的这个。
03:05
数据库里,真正的数据库里,呃,去存储这份数据,两个操作呢,全部都成功,那么这才算是数据同步完成,那这样就能达到双写的一致性了。那呃,这是它的外置缓存,外置缓存的应用呢,非常多,尤其是现在的互联网公司里,呃,在这个我们的Java服务器上呢,呃,比如说用Java服用Java啊,可能现在在听课的同学也不是用Java的,如果是Java的话,一般都会用这个red的集群去存储一些这个热点的数据嘛,那么这会儿呃,N连接的这个呃缓存数据,缓存数据库呢,比如说像red memory catch,那它的维护工作就是对数据的这个维护工作,那就不能再由NG来做了,他只提供这个访问操作,当然也有一些。呃,简单的操作,比如说一些简单的技术操作啊,当我们的N变成了应用服务器去做防火墙的时候,我可能要去检查用户的访问频次啊,那针对于每一个用户呢,都要去记录一个数据的值。那如果。
04:07
在这个里存储这个数据的值,你还靠后端服务器,比如Java来维护的话,那么这个呃,完成这项业务的链条就有点过长了,那这会儿简单的操作呢,我们就可以通过N几来完成啊,把这个请求呢,直接写到我们的这个呃,Red或者memory catch里,以达到这个技术统计的作用,但是总的来说,这种业务式的,业务式的庞大的数据呢,这不会由NG来维护,呃,缓存服务器的这个内容的啊。在外置的这个方案当中呢,我们会给大家举两个例子啊,一个是memory的,另外一个呢,就是嗯,更常用的这个red。呃,我们的这个具体的配置呢,我们放到后边的课程里给大家讲啊。
我来说两句