00:00
那们现在的时间是晚上的十点钟,那么咱们就开始今天晚上的学习哈,那么今天晚上呢,咱们来学习一下我们的readdi,那么希望通过今天晚上的学习,能够让大家对我们的reddiance呢,能够有一个进一步的了解,为大家后续的深入学习哈奠定个基础。那首先大家需要知道啊,这个radius呢,它是一个什么呢?它是一个no c code数据库,而我们呢,又可以把这个什么呢?Lowicq数据库划归到我们的大数据体系当中,因此呢,大家后续如果要系统学习大数据的知识,那么除了需要掌握哈PM10巴克fli克以外,还需要掌握咱们的lowc Co数据库,当然张老师呢,也会在后续课程里面单独给大家介绍有关大数据的相关的知识,当然在这个low CQ数据库里面呢?
01:00
包含很多其他类型的Lucy口数据库,赵老师呢,也会在后续课程里面呢,单独的来给大家进行相关的介绍,那大家之前哈,如果听过赵老师的课程,那么应该都知道,赵老师呢在上课的这个过程当中,会给大家记录这样的一个课堂的笔记,通过记录课堂笔记的这种方式,我们会把今天晚上呢比较重要的知识给大家记录下来,因此呢,咱们今天晚上。也会按照同样的这种方式来给大家记录一个课堂笔记,重点给大家介绍一下三个方面的知识,首先咱们需要对nocyo的一些基本知识要有一个基本了解,那么到底什么叫做noico数据库?它跟咱们传统的关系型数据库那么又有哪些区别?那一些数据库属于咱们的OC code, 它又有哪些特点?那么咱们将会在第一个小节来给大家进行相关的介绍,那么我们将会在第二小节来给大家介绍,当我们把热安装部署好以后呢,它给我们提供了哪些命令脚本,这些命令脚本的功能和作用分别是什么?并且呢,咱们还会结合一个具体的应用案例,看一下我们可以把把瑞呢应用在哪些场景之下,那么有了这些基本知识以后,那我。
02:31
我们在red德S里面呢,它提供了哪些高级特性,那这些高级特性呢,有很多种哈,那么这地方呢,我把几个比较主要的呢,先给大家写一下,比如说我们在里面呢,支持我们的事务操作,对,那么它还支什么支持我们的消息的机制,并且呢,它支持我们的么数据的什么持久化,并且呢,咱们在red里呢,还能够去搭建我们的集群,那通过咱们稍后的学习,那么大家会了解到,当你在里面搭建集群的话,它有两种方式,那么先把这两种集群呢给大家写着,在这个地方,首先我们在red里面呢,搭建集群的第一种方式是我们能够去搭建什么主从复制的集群,那主从复制集群本质上它是一种备份,这个呢,是我们在reddi里面实现集群的第一种方式,而我们在reddi里面。
03:29
要实现集群的第二种方式是什么呢?我们能够去搭建我们的吗?Red cast, 那么什么叫red cast呢?它是约3.0版本以后提供的一个数据分布式存储的解决方案,这个呢也是一个集群环境,那因此呢,我们在整个red里面搭建集群主要有这两种方式,当然除了赵老师在这个地方给大家列举出来的这些高级特性以外,还有一些其他的高级特性,这个地方呢,咱们就不一一的给大家进行相关的介绍了,还有从我们介绍到这个地方的时候呢,赵老师带大家去梳理了一下哈,咱们在今天晚上。
04:16
将会学习到哪些知识?好,咱们现在呢,咱们就按照这样的顺序来给大家进行相关的介绍,首先咱们看一下第一个部分哈,No c口数据库的基本知识,首先赵老师呢,问各位直播间同学啊,一个问题,能不能够告诉一下赵老师到底什么是我们的lucyo,你能够帮赵老师解释一下它的基本的概念吗?如果说大家知道lowico的基本的概念,那么就请发送到咱们的公屏之上,如果说大家不了解呢,就请在咱们的公屏之上回复一个0,或者给赵老师呢点一个赞,好,咱们接着往下。
05:02
来给大家进行相关的介绍,那么尽管这些基本概念看似非常简单,但是呢,越是简单的基本概念,那么越是重要,那么希望大家能好好的掌握。首先咱们讲一下到底什么叫做我们的lowcy口呢?如果说你把这个lowcy呢翻译成什么写全称啊,它的全称呢,大家需要知道全称是我们的呢,Not only circle, 如果说直接从字面上把它翻译过来的话,它指是什么?它指的就是不仅仅是我们的Co,那这个单是整个lo c com, 它从字面上去理解,到底什么叫做我们的lowcyo,但是呢,请大家注意一下lowcy code的什么,它的真正含义是什么?它泛指哈,泛指什么所有的非关系型数据库这一句话才是low西口的什么真正含义,重复一下。
06:02
那泛指什么呢?所有的非关系型数据库,那么因此呢,我们在讨论no c口之前,那么就需要讨论一下另外的一个问题,那么到底什么叫做我们的关系型数据库?那么当你把关系型数据库搞明白以后,反过来去理解什么叫做非关系型数据库。什么叫做lowsq呢?自然而然的就明白了,那比如说我们所使的吧,你所使用的Oracle也好,你所使用的MYSQ也好,包括呢PG好等等等等,那么这些呢,都是属于传统的这个关系型数据库,那么什么叫做我们的关系型数据库呢?当你把它搞明白以后,反过来去理解什么叫做low西库,那么自然而然的就能明白,首先解释一下什么是我们的关系型数据库啊,那怎么讲关系型数据库它主要是什么?基于我们的关系模型,那么咱们基于关系模型我们所提出来的一种数据库就叫做关系型数据库,那么接着再往下面去讨论,什么又叫做关系模型呢?关系模型的本质是我们使用一张二维表达什么行和列的方式来存储数。
07:28
的模型就叫做关系模型,换句话去说,在你的oracl里面,MYSQL里面,PT里面,最终存储数据的模型都是这种二维表的行和列,这个呢是整个关系型数据库它最基本的一个概念,那么并且呢,我们在这个关系型的数据库里面呢,当你去设计它的表结构的时候,咱们需要干嘛呢?遵循我们的范式,那么什么叫遵循范式呢?当我们拿到一个需求以后,先根据这样的需求设计出它的什么呢?
08:09
一二模型,也就是实体关系模型,那么有了一二模型以后,再根据我们的方式,比如说我们的第一范式,我们的第二范是我们的第三范,最终设计出关系型数据库的表结构,这个呢是我们在传统的这个关系型数据库当中,它基本的一个做法,那么关于这个部分的详细知识,那么赵老师呢,也会放到后续的直播课里面,单独的来给大家进行相关的介绍,因此呢,今天晚上咱们重点不讨论关系型数据库,而你把关系型数据库搞明白以后呢,反过来去理解什么叫做我们的lo c口,什么呢叫做我们的非关系型数据库呢,自然而然的就明白,那么也就是说我们在这个什么low CQ数据库当中,它并不什么并不遵循我们的关系模型。
09:09
并且呢,他还一点是什么很重用呢,他是写一下他不遵循啊,不遵循我们的么关系模型,并且呢,他还是什嘛反翻式的,对那B它不遵循关系模型,那么也就是说你在这个low CQ数据库当中存储数据的模型可能呢,就不是这种二维的行和列,并且它还是什么反方式的,那你反方式以后它有什么优点,那么它又有什么缺点呢?那么你要把这个问题搞明白的,是的话,首先你就需要知道我们在关系型数据库当中,你为什么要遵循范思,那遵循范思以后他有什么优点。那么他又有什么缺点呢?好,赵老师呢?首先问一下直播间各位同学,那么你能不能够告诉一下赵老师,我们在关系型的数据库当中为什么要遵循范式,那么遵循范式它有哪些优点,它又有哪些缺点呢?你把这些知识都搞明白以后,反过来去理解no cle的反方是它又有什么优点,它又有什么缺点,自然而然的就明白。好,先问一下各位直播间同学,能不能够告诉一下赵老师范胜他有什么优点?那么如果大家知道范氏的优点么?就请发送到咱们的公屏之上,那么如果说大家不了解呢?就请在咱们的公屏之上回复一个0,或者给赵老师呢点个赞,好,咱们接着往下。
10:53
来给大家进行相关的介绍,好,我们讲一下范式的主要优点是什么呢?它能够去减少数据冗余,数据它不会多存,表与表之间通过表的外界那么进行关联,这个呢是范式的主要优点,那么正因为呢,它有这样的一个优点,同时也就带来的一个缺点,缺点就是它会什么影响什么查询的效率,那么你把遵循方式的优点缺点搞明白以后呢,反过来去理解no西口的反方式,它有什么优点,那么它又有什么缺点,既然你在lowcy里面不遵循范是缺点就是它会造成数据冗余,但是优点就是它能够去提高咱们查询的效率,因此呢,整个的locy com, 那么它的出发点跟我们的关系型数据库呢,正好是节。
11:53
但相反的,那么有了这些基本知识以后,我们还需要去了解一下一些比较常见的什么low c code的什么数据库,好问一下各位直播间同学,你能不能够把一些比较常见的low CQ数据库的名字发送到咱们的公屏之上,那么如果说大家都了解呢?哪些数据库它是我们的Lucy库?那么就请告诉一下赵老师哈,如果说大家不了解呢,就请在咱们的公屏之上回复一个0,或者给赵老师呢点个赞啊,咱们接着往下。
12:33
来给大家进行相关的介绍,这里呢,咱们把一几个比较常见的logcy口呢,来给大家进行一个简单的一个介绍,首先咱们第一款比较常见的Lu西库呢,就是咱们今天晚上要给大家介绍的么?介绍的什么约德斯啊,Red德S呢,它是一款非常常见的low c口的数据库,那么它主要是什么,基于内存的什么建值数据库啊,那这个里面呢,它就有两层含义,首先第一层含义它是基于内层的,既然它是基于内层的约的什么所有的数据的读写操作都在我们的内存上完成,既然读写操作。
13:20
都在内存上完成呢,那么读写效率呢就会非常非常快,那么这呢是整个日程它的低层含义,它是基于内存的一个什么数据库,那么它的第二层含义呢,它是一个什么建值数据库,或者说它是一个什么key value类型的数据库,通过K来去操作咱们的value,那这呢是整个它的什么基本的特点,那既然它基于什么内存方式来读写数据,内一层的优点是读写速度呢会非踌快,但是呢,缺点是内一层它是一个不安全的地方,如果说内存突然掉电崩溃以后数据将会丢失,那么问一下各位直播间同学,能不能够告诉一下赵老师,我们在RA里面通过什么样的方式来保证内存数据的安全,你能够把这种方式或者说。
14:21
过这种机制发送到咱们的公屏之上嘛,那么如果说大家都了解呢,就请回答小赵老师的问题哈,如果说大家并不清楚呢,也没有关系,就请在咱们的公屏之上啊,回复一个0,或者给赵老师呢点个赞好,刚刚我们提到约德呢,它把所有数据保存在内存当中,如果说内存突然掉天以后,内存的数据都将会丢失,因此呢,我们这边的是你们呢,它提供了什么数据持久化的方式来保证数据的安全,那简单解释一下,什么叫持久化,持久化就是说我在觉得是里面呢,通过这样的一种方式。
15:06
我可以把什么呢?内存中的数据持久化了什么写到文件上,那么既然持久化写到文件上以后,当内一存数据发生丢失或者损坏,我能够通过读取持久化的文件来恢复那一程度的数据,因此呢,通过这样的一种方式,我们在reds里面呢,它就能够保证数据的安全,并且通过咱们稍后的学习,大家会了解到我们在VS里面呢,它的持久化它有两种方式,一种是什么?一种是我们的嘛,RDP的方式,一种是什么?我们的off方式,那么咱们讲RDB和我们a of呢,都是我们在radi里面提供的数据持久化方式,本质上都是通过生成文件来保证内存数据的安全,那顺带呢,问大家一个问题,既然我们在red里面。
16:06
它有RDBM,它又有l off, 这两种方式都能够去实现数据持久化,那么我们在Rex里面默认采用哪种方式来实现数据持久化呢?大家能不能够告诉一下赵老师啊,好,因此讲到这个地方的时候,我们希望大家了解的第一款nocy com到底什么是U呢?就给大家介绍到这个地方,稍后呢,咱们来详细给大家介绍这里面会涉及到哪些相关的内容,好接着给大家介绍我们的第二款,那就是刚刚这个同学啊,一期一会说的什么我们的这个HM base啊,首先大家需要知道h base呢,属于我们的哈都什么生态圈体系,那今天晚上一开始的时候,我就讲到我们可以把整个的什么这个low西口呢划归到我们的大数据体系当中。
17:06
因此呢,大家后续如果要系统学习大数据的知识,那么需要去学习我们的low c口L数据库,比如说我们就可以把这个什么呢h base, 嗯,划归到我们,比如说我们这个h base呢,它就属于我们的哈杜生态圈体系,通过使用哈都普呢,能够去构建我们的离线数仓来存储离线数据,包括呢计算和分析离线数据,因此呢,大家如果要学习h base呢,首先需要去掌握咱们的哈do,那到底什么是我们的h base呢?H base简单的做一个介绍,它是什么基于HDFS之上的什么历史存储的啊,历史存储的一个low cql数据库,那这个里呢,它也有两层含义,首先它的第一层含义是什么呢?H倍基于HD。
18:06
之上,那问一下各位直播间同学,知不知道什么是HDFS,如果说大家知道什么是HFS呢?就请给赵老师呢回复一个1,如果说大家并不知道什么是HDFS呢?就请赵老师呢回复个0啊好,咱们接着往下。来给大家进行相关的介绍,简单介绍一下HDFS,啊,HDFS呢,它是属于哈都普当中提供的一个分布式的文件系统,你把它看成是一个网盘就可以,它能够以文件方式解决海量离线数据的存储问题,那么既然你的h base基于HDFS之上,那我们在h base里面创建的一张表,表中的数据最终都将以目录和文件形式存储在HDFS当中。因此有了这个关系以后,大家后续呢,你在部署环境的时候,就需要先部署好HDFS,嗯,当你把HDFS部署安装好以后,再来部署我们的h base SM, 好,整个h base SM它的什么?第二层含义呢?它是一个什么?它是1。
19:28
跟历式存储数据库,那么列式存储跟你的行式存储它有什么区别呢么?传统的什么这个关系型数据库,比如说Oracle啊MYSQ呢,这种关系型数据库啊,说一下,那么他们都是什么,都是嗯,按照什么行式存储的方式来读写数据,那什么叫做行式存储呢?简单来说就是在你的Oracle里面,MYSQL里面,当读写数据的时候,它以行为单位,读写完第一行以后,那么在读写第二行,那么在读写我们第三行,那么这种行是存储的关系型数据库呢,主要适合执行我们的什么插入、更新,还有删除操作,那么反过来就是说这种数据库,那么他就不适合执行我们的查询操作,比如说当我们需要构建我们的数据仓库的时候,由于。
20:28
我们在数据仓库里面需要执行大量的什么查询语句,推荐使用咱们的什么历式存储,因此呢,写一下历史存储数据库呢,主要适合什么,执行我们的什么查询操作,比如说当我们去构建我们什么数据仓库,对,而数据仓库呢,它又是一个什么呢?O lap的应用场景,因此呢,当你要实现这种应用场景的时候,那推荐使用咱们的历史存储数据库,当然目前构建数据仓库的主要方式都是使用咱们的大数据的方式,比如说你使用how do也好,18g也好,Fli克也好,那关于大数据的这些知识,赵老师呢,也都会在后续的直播课里面单独的来给大家进行相关的介绍,好,咱们再来给大家介绍。
21:24
最后的一款什么呢?Low比较常见的low西com,那就是我们呢这个mango dp啊对,那mango DB呢,大家注意一下,它是什么呢?它是所有的low c库当中功能最强大,最像关系型数据库的一个low CQ数据库,那么这句话呢,我再重复一遍,Mango dbm, 它是所有的low CQ当中功能最强大,最像关系型数据库的一个no c库数据库,那么它的主要特点是,它是什么?基于文档的no c库数据库,那这个地方的文档是我们的嘛,是我们的B胜文档,那什么是B胜文档呢?B胜文档它是接胜文档的二进制形式,因此呢,我们可以直接把一个二进制的数据保存在mango DB当中,那关于这个mango DB更加系统,更加详细的。
22:25
的内容呢,赵老师呢,也会在后续的直播课里面单独的来给大家进行相关的介绍,那么因此呢,介绍到这个地方的时候,整个今天晚上的第一个小节有关OC口的一些基本知识,那么就给大家介绍到这地方,好问一下各位直播间同学,关于咱们今天晚上的第一个小节,大家是不是都听明白了啊,如果说这个部分大家都听明白了呢,就请在咱们的公屏之上,请给赵老师呢回复一个1,或者给张老师呢点个赞啊好,接下来咱们进入到第二小节的学习,那么嗯。
23:12
约定式的命令脚本与应用案例,那当我们把约定安装部署好以后,它提供了哪些命令脚本?这些命令脚本的功能和作用分别是什么呢?他们切换到咱们的实验环境当中去的,它进到咱们的类似的什么呢?安装的目录像要进入到它怎么安装目下面来,好进入到安装目录下面来以后呢?执行一个催命令,它会以什么呢?树行结构把目录呢展开,那所有我们在V里面,它所提供的命令脚本呢?都在他的什么?都在他的这个并目录下,而在它的什么康复目录下面呢?保存了是约的么?配置文件这个地方呢?重点看一下我们在B目录下面,它提供了哪些命令脚本,首先看一下第一个命令脚本create呢,Class的,它通过使用class脚本呢,我们能够在。
24:13
单机的环境之上快速创建六个节点的什么reddison casta的,那这个地方什么叫做red cast呢?刚刚说过,那red我们的cast呢,它是red3.0版本以后提供了一个什么数据分布式的解决方案,因此呢,通过使用咱们的第一个命令脚本,我们能够快速创建六个节点,组成一个约的是卡,它们呢能够实现数据的分布式存储,这个呢,是我们在里面呢构建集群的第一种方式。好,再来看一下它的第二个mini脚本,叫做我们嘛read的bety马,那什么叫bench克呢?Bety马克翻译成中文的话,Bety马克翻译成中文的话,它叫做基准,如果直播间的同学有做测试的,应该知道有一种测试呢,就叫做基。
25:13
准测试,而这个地方呢,什么red本mark克呢,它是我们在red里面呢,提供的一个压力测试工具,比如说我想产生一些压力来测试一下约德性呢,你能够使用什么这样的一个压力测试工具,但是呢,约定是提供了这么一个工具,好接着看一下下面的两个工具,分别叫做咱们什么切克LF和我们的什么切个当铺,那这个是什么两个检查并修复的工具,那通过咱们刚刚的介绍提到了,我们在约里面呢,它提供两种持久化,一种是RDV持久化,那一个呢,叫做LF持久化,那不管是哪种持久化的方式,它都会产生。
26:03
文件啊成种文件,那么咱们这个地方提供两个工具,那么一个呢是咱们呢就个check LF, 通过使用check克LF呢,它能够检查并修复咱们的a off日文件,看一下能不能够使用这个文件呢来恢复内存中的数据,而下面的什么呢,切个downmp呢,是检查并修复咱们的RDB文件,看一下呢,这个RDB文件能不能够也用来恢复内存中的数据,因此呢,它是整个认里面呢,提供了两个检查并修复的工具,据好再看咱们的第5个命令脚本叫做咋们的嘛,Red c Li, 那这个red c Li呢,它是整个里面提供了一个客户端工具,你看你在这个客户端工具里面呢,通过K能够去操作咱们的value value既然有客户端工具,当然呢,咱们就咱们这个个端服务器,端工具服务器。
27:03
那运行起来以后呢,默认监听咱们的6379的端口,对,好再倒过来看一下上面的什么这个red sentinel, 对,如果说你把这个什么sentinel翻译成是中文的话,他什么叫做咱们什么哨兵,那什么叫哨兵呢?哨兵他约德2.4版本以后提供的一个什么HHA的高可用的解决的方案,那通过刚刚的介绍咱们知道呢,我们在reds里面呢,还有另外的一种方式能够搭建集群,我们呢,能够去搭建约的什么这个主从复制集群,既然你能够搭建主从复制,它就是一个什么主从架构,而只要是主从架构,它就存在咱们的单点故障问题,那么单点则是我们集群的主节点。如果整个主。
28:03
从复制集群当中只存在一个主集点,它就叫做单点,当它死掉以后,它就会造成整个的集群无法正常工作,因此呢,咱们讲只要是主从加构都存在单顶故障,那么为了解决这样的问题,实现ha的高可用,那么我们在VS里面呢,提供了我们的哨兵,通过使用哨兵就能够解决主从复制的单点故障,实现高可用的功能,那这些呢,也都会在咱们的系统课程里面来给大家进行详细介绍好整个目录结构,了解到以后呢,现在呢,咱们去把约的办法服务器端给它家启动起来啊,直接从并下面把约定我们的server,指定咱们的的这个配置文件,它整个服务器端请动起来,以后呢,默认监听我们的637。
29:03
九端com通过使用命令呢,能够查看到red的什么后台进程,这地方呢,我们做一个简单的过滤,过滤从有关red server的什么后台进程,那通过输出的信息,那么咱们可以看到呢,后台有一个进程,进程号是71520,它监听我们的6379端口,那看到这种信息它被打印输出以后,就表是整个red的服务器端启动成功了,对,那么既然服务器端启动成功以后,那么咱们呢,就能够使用客户端连接上去,客户端默认连接当前主机的6379端口,那么连接上来以后呢,那么我们就能够通过使用约它所提供的命令来操作咱们的约德斯,那刚刚提到由为我们在约德斯里面呢,它是一个什么,它是一个。
30:02
我们的建子数据库,通过Kim来操作咱们的value,并且呢,我们在reddi里面呢,提供了丰富的数据类型,比如说它能够支持我们的字符串数字哈希集合列表呢,都是支持的,比如说我们登录到read里面去以后呢,首先能们保存什么,保存一个字符串set咱们的hello word, 那通过使用这样的一种方式,我就把一个字符串保存到了当中,很明显咱们这个个地方什么哈是我们的K,而我们的word呢,是我们的value,如果你要获取值呢,也需要通过K来去获取咱们的value,好,通过使用咱们的什么get语嗯,指定key好了呢,返回指将是咱们的啊word word好这个地方怎么去保存操作的是一个什么字符串,当然咱们也能够操作咱们的数字set money, 比如说我有1000块。
31:02
对,当然我们在S里面呢,还支持我们的哈希合,比如说现在那种通过创建一个哈希集来保存一个用户的信息,通过使用什么HMMC呢,创建一个哈西几合,也是一个什么t value格式,可是我们的嘛,User年01后面的value呢,也是一个k value的形式,那比如说名政,就是咱们的Tom,年龄呢是21岁,那么通过使用这一条命令,我就创建好了一个哈希集合的,保存一个用户的信息,好看一下这哈希集合的结构啊,这地方什么USER00YOUNG是我们的什么我们的Kim,而后面的什么这一堆呢,是我们的VALUE6,而VALUE6本身又是一个K86名字name呢是我们的Kim Tom呢是我们的VALUE6 a是我们的Kim 21岁是我们的。
32:02
Value, 因此呢,整个我们在read德里面操作呢,都是非常简单的,都是通过Kim在操作咱们的value,而在默认情况下呢,这些数据都将会被保存在咱们的内存当中,当然刚刚提到我们在原里面呢,提供了数据的持久化,能够把内存数据写到文件上,这个时候呢,即使当内存调电数据丢失以后呢,那么我们也能够通过文件来去恢复内存中的数据,那么关于约定那么持久化呢,稍后呢来给大家进行相关的介绍,还有问一下各位直播间同学们,那关于赵老师们刚刚演示的这几个DEMO的事例,大家是不是都看明白了哈,如果这几个操作大家都看明白了呢,就请在咱们的公屏之上,请给赵老师呢回复一个1,或者给赵老师呢?
33:02
咱点个赞啊好,咱们接着往下。来给大家进行相关的介绍,那么有了这些基本知识以后呢,好,接下来呢,我们通过一个具体案例来看一下,我们可以把阅呢应用在哪些场景之下,首先说一下这个应用案例是谁提出的呢?是脸书上是我们怎么Facebook,那么Facebook呢使用咱们的red呢来统来怎么来统计网站用户的什么登录信息,这个呢是非常典型非常经典的一个什么red德的一个应用案例,重复项目,这个应用案例是演说,是Facebook呢,它使用its呢来统计网站用户的什么登录的信息呢?它既然是如此的话,看一下整个的案例,它的一个什么应用背景,它的一个背景它是个什么样子的?好,咱们阅读一下这个地方文字部分描述,假设在网站的运营的过程中需要统计。
34:07
嗯,用户的登录的次数,网站的现状如下,我有什么1亿个注册的用户,那么这一个用户里面呢,有的用户经常登录网站,有的用户呢,不经常登录网站么?如何记录用户的登录信息,那么这个呢,是咱们提出来的第一个需求,第二个是什么,如何查询活跃的用户,比如说一个星期之内登录的什么删除的网站,那当我拿到这种需求的时候,首先我就想象能不能够把这种信息存储在传统的这个关系型的数据库当中,当然是可以的,比如说你可以在这个Oracle里面。或者在你的MYSQL里面创建一张表,表结构非常简单,它只有两个列,一个呢是用户的ID号,一个是他的登录时间,那如果说这个用户他登录网站,我在这一张表里面呢,记生成一条记录,是不是就可以把这个信息记录下来,但是呢,但是呢,你想如果你使用传统的这个关系型数据库来存储这种数据,它会存在什么问题呢?给我们看一下,现在我的网站我有一个用户,我假设一下这一个用户每天都会登录网站,比如说我在星期一的时候,这一个用户都登录网站,那么这张表里面呢,将会产生一条数据,用来记录什么这些用户们他们的登录信息,那我在星期二的时候呢,这一个月。
35:52
动户又登录网站,我再产生1亿条数据,是不是这样子的,一个星期七天下来的时候,对不?我假生每一天这一个用户们都将会登录网站,那这张表里面将最终会产生7亿条数据,用来什么记录这些用户他们的登录情况,那7亿条数据对于任何的一个关系型数据库来说呢,都是一个非常大的压力,那么咱们就想有没有一种更好的方式来去解决这个问题呢?答案当然是有的,那么你想我想去记录一个用户,他到底有没有登录网站,我是不是只需要用什么,只需要用in或者呢,只需要用0来表示就可以,比如说这个用户他在今天登录的网站我就能。
36:52
那选择是记录一,如果他没有登登网呢,我就记录成什么0,我用1和0是不是就能表示一个用户他有没有登录网站,那这基于这个思想呢?我们来看一下他如何去解决这样的一个问题的,假设想我在星期一的时候,这一个用户一样他也登录的网站,我就会产生多少了1亿个1啊,我用1亿个什么1来记录呢?这1亿个用户名,他在星期一的时候登都登录网站,我把这一个音换算成是兆,应该是多大呢?大概是12兆啊,那我用12兆这个数据就能够记录呢?星期一这一个用户们他们都登录网站,按照同样的方式,我在星期二的时候,这一个用户又登录网站,我。
37:52
待产生12的兆的数据,用来什么记录他们的登录信息,一个星期七天下来以后,我最多产生12×7,最多产生84兆的数据,就能够什么呢?记录一个用户一个星期的这录情况,那84兆的数据,那比刚刚的7条数据就好太多了,对不对?那你可以你可以直接存在内存当中,或者呢,存在文件当中,是不是都是可以的,对不对?那思想和原理大概知道了,那如何去实现呢?那为了实现这样的什么方式呢?那我们在re里面呢,就提供了一个什么按位操作,那通过使用什么按位操作,我就能够使用1或者使用0来记录呢?这个用户他到底有没有登录网站?
38:52
如何是如何操作咱们的按位操作呢?来给大家进行一个DEMO的演示,好回到咱们的命令行的吗窗口当去,那他们假设一下,今天是星期一,用户ID号是123号的用户,他在星期的时候登录网站,我就把按位,什么第123位呢设置成是1,表示这个用户他在这一天登录网站,如何去写呢?通过什么set bit对harm Monday是我们的什么K表示呢?今天是我们的星期一,用户ID号是123号的用户,他在这一天登录的网站,我就把这位呢设置成是1,那么按照同样的方式,如果其他用户在这一题呢,也登录的网站,我也把对应的这一位呢,也设置成是in。如果没。
39:52
是呢,默认就是因此呢,我就用1或者用0就能够表示某一个用户他在某一天是否登录网站啊,再来写一下set bitta了,今天还是Monday星期一,用户ID号是45号的用户,他在这一天也登录网站,我也把这位呢也设置成是因,那当你要查询某个用户他在某一天是否登录网站,我也呢通过安慰来查询,那么就可以了的,要通过什么get bit, 我比如说我想去查询。
40:33
在Monday哈,星期一的时候,用户ID号是123号的用户,他在这一天呢,是否登录网站,如果返回值是1,就表示他在这一天呢登录网站,如果返回值是0,就表示他在这一天呢没有登录网站,它执行我们的这个什么查询操作,返回值是我们的1,返回值是1,表示这个用户他在这一天呢登录网站,按照同样的方式,你也能够去查询其他的用户,他在这一天呢是否登录网站啊,咱们再来写一个,再写一个通过使用咱们的给他们给他我要去查询Monday信息的时候,用户ID house100的用户他在这T呢,是否登录网站,返回支持0,就表示这个用户他在这天呢,并没有什么登录网站,因此呢,我们通过使用什么按位操作。
41:33
就非常适合呢,存储这种类型的数据,它简单的什么小结下,那这种暗位操作,那它主要场景什么?这种按位操作主要的应用场景就是当你的数据只有两种情况,要么是1,要么是0,要么是真,要么是假,要么是男,要么是女,当数据只有两种情况的时候,非常适合使用约的是什么暗位操作的存储数据,因此呢,当你遇到了这种场景的时候,你就不要把这种数据呢,存储在传统的这个关系型的数据库当中,因此呢,讲到这个地方的时候,关于这样的一个约的应用案例,那就给大家介绍到这个地方,好问一下各位直播间的同学。
42:27
关于这个案例大家是不是都听明白了,如果这个部分大家都听明白了呢,就请在咱们的公屏之上,请给赵老师呢回复一个1,或者给赵老师呢点个赞,这个呢是非常经典的应用应用案例啊,他是脸书Facebook上提出的一个,对还有了这些基本知识以后,那么当然我们在里面还提供了什么很多的高级特性,比如说提供了咱们事消息机制持久化,包括呢也能够去搭建咱们的集群,对好,简单介绍一下这个里面的特性,首先咱们介绍一下约什么约什事务操作,对首先需要知道什么叫做我们的事,事物呢是我们在关系型数据库当中非常重要的一个特征,那么到底什么叫事物呢?事物呢,它是是,而叫它什么它是有是什么是它是。
43:28
由啊,由一组什么一种DMM语句组成,那什么叫DMM呢?就是我们的嘛,数据操作语言里面呢,主要包含我们嘛,插入更新,还有我们的嘛,删除操作,那反过来就是说我们的事物里面呢,不包含我们的查询语句,这呢是整个事物的什么基本的一个概念,比如说基本概念以后呢,问一下大家事物呢,它具备哪几个属性,你能够把事物的属性发送到咱们的公平之上吗?如果说大家知道什么事物的属性,这么就请积极告诉一下赵老师,如果说大家不了解呢,就请在咱们的公屏之上回复一个0,或者给赵老师呢点个赞,这些知识都是你后续你在学习关系型数据库的时候非常重要的内容用到。
44:28
啊,事物呢,是我们的关系型数据库里面非常重要的一个特征,对,而事物呢,它是由一种DML语句组成,里面呢,不包含我们查询操作,它具备呢,四个属性分别是我们的嘛,A cid, 那简单解释一下,什么叫a cid a呢代表我们嘛,我们的原子原原子性,原原子性C呢代表咱们什么一致性I代表咱们的什么隔离,隔离性D呢,代表咱们什么持久性好,这个呢是整个数的什么四个属性好,我们解释一下什么叫做原子性呢?原子性表示事物呢,它是一个原子单位,组成事物的各个语句不可再分,要么都执行成功,要么都执行不成功,它不存在几个成功几。
45:28
个失败的情况,那这个呢,就叫就叫做咱们的原子性,那什么叫一致性呢?一致性表示事物结束以后,对提交叫结束,回国也叫结束,事务结束以后呢,数据库中的数据。将会从一个正确的状态转换到另外的一个什么正确的状态,那么它不存在一个中间的状态,那这呢就叫做一致性。那什么叫隔离性呢?隔离性表示的是什么呢?由于数据控支持我们的并发操作,当多个事物们多个客户端同时操作数据库当中同样数据的时候,我们需要有一种隔离机证隔离他们之间相互的影响,否则他们就会带来我们的张毒,不可重复读和换读问题。隔离性是事物的四个属性当中最难实现的。好再看一下什么是持久性,持久性表示当事物呢提交成功以后,它不会因为当机内存崩溃造成数据的丢失,而持久性的本质是事物提交以后呢,把事务操作写。
46:46
到数据库的日志当中,只要日志写入成功,就算提交成功,跟你你数据文件本身没有任何的关系,那这句话呢,我再重复一遍,持久性的具体体现是当事物提交成功以后,只要把事务操作写入数据库的日志当中,就算事务提交成功,当然这个里面呢,涉及到的更加系统知识,涉及到的数据库的原理呢,赵老师呢,也会在后续给大家讲or讲MY讲PD的时候呢,来单独的给大家进行相关的介绍,好了解到了什么事物的基本的特性以后呢,但是注意一下,目前咱们的lowcy com不能够严格的去保证事物的acid的属性,那这句话呢,也给大家记在咱们的课堂笔记上了,他写下lowcy com所有的locy com, 它什么不能够啊,它不能。
47:46
嗯,不能更严格,什么严格保证什么事物,事物的什么a cid的什么属性,那正因为有这个原因,那么咱们的logc库呢,还不能够取代咱们的关系型数据库,因此呢,当你以后你要执行失误操作的时候呢,还是需要去选择咱们传统的关系型数据库,不管是哪一种类型的关系型数据库,它都是严格保证事物,都能够保证事物的ACI的属性,还有呢,这些基本知识以后,当然我们在里面呢,它也能够支持简单的事物操作,它只能够保证在单线程当中的什么事务操作,不能够保证多线程,也就是它不能够保证事务的嘛隔离性。好了这些基本知识以后呢,我们来给大家举一个例子啊,举举例,如何执行一个银行的转账啊,如何执行一个银行的什么转账操作,那既然是。
48:46
保障呢,它至少就分为两步,先扣钱,那么再加钱,扣钱和加钱,他们应该主成的事务,要么都执行成够,要么呢都执行不成功,当然你也能够在关在关系型数据库里面执行这样操作,当然也能够在我们的里面也能够执行这样操作好,那么先去准备像怎么需要用到的什么数据啊,所以比如说我有两个储户,那Tom呢,他有什么,他有1000块钱,那麦克呢也有1000块钱,现在呢,我想从他们的账号上面转100块钱转给麦克,那么至少呢,就分为两步,扣钱和加钱,诶他们组成一个什么事务操作,如何在我们的re里面开启一个务呢执行我们呢猫台语句命理,那当你执行这一条语句的时呢,后面呢,就表示咱们开启的这个一个什么一个事务操作,那它。
49:46
就用什么多个我们的插入更新或者删除语语句组成,首先咱们从我们的他们的账号上面呢,扣掉100块钱执行,什么D亏啊D亏半,我们的他呢减去100块钱,注意我们在X里面,当你执行失误的时,操作时段本质上是把这操作段放到一个什么队列当中等待执行,这句话呢,我也重复一遍,当你在约里面开启一个失误以后,执行的所有操作,本质上是把该操作放到一个对列当中等待执行,因此呢,这是这个地方它所打印出的提示信心不是OK,是我们的K的K呢就表示它放到了一个什么对立里面等待执行,那么既然扣钱完成了,我们再来执行我们的加钱动作,我在在什么麦克的账号上面呢,加上。
50:46
100块钱,那你加钱的动作呢,也本质上也是放在一个什么队列当中等待执行的,当这两个操作都没问题的时候,我就提交我的事误提交时候呢,执行一个1X ec, 那当你提交时入的时候,它就会把放到队列当中的什么所有与居民都统一的一称执行完,执行完成以后呢,我们的Tom呢,变成了什么900块钱,而我的麦克呢,变成了什么1100块钱,通过使用这种方式呢,我就完成一个什么银行转账的过程,基本上跟你在MYSQL里面呢,基本上是完全一样的,只不过呢,怎么所使的语句呢,有点不太一样,对啊,注意一下,我们尽管在read德S里面支持事操作,但是呢,它只能够保证在单线程当中的事务操作,它不能够严格的去支持。
51:46
是输的a cid的属性因此重复变,目前no c com还不能够取代关系型数据库呢,很重要的原因就在于呢,Lucy come不能够严格的去支持我们的事物还一层讲到这个地方的时候,问一下各位直播间同学们,关于约当中么事物这个部分大家是不是都听明白了,如果说关于事物的什么介绍大家都听明白了呢?就请在咱们的公屏之上啊,请给赵老师呢回复一个1,或者给赵老师呢点个赞啊好,咱们接着往下来给大家进行相关的介绍,对,好,当然我们就认识你呢,还支持我们的嘛,消息及这既然支持消息就是呢,简单介绍一下什么是消息,消息它有两种类型的消息,一种是我们的的topic消息啊,一种是我们的K消息。
52:46
那这个呢,是消息系统,它所要支付什么?两种消息的类型,一个呢是我们topic,一个呢是我们的key,那什么叫topic呢?什么叫key呢?简单解释一下,Topic呢,翻译成什么,我们的作文呢,它什么它就叫做咱们的主题目,什么叫主题类型的消息呢?写下它是我们的吧主题啊主题类型的消息就是我们的广播,广播呢,比如说我在这这地方说话,大家呢都能够听得到这种广播类型的消息叫做咱们的主题,叫做什么topic课,那什么you都可以呢,可以呢,如果说你把它翻译成我们的中文的话,它叫做么就做咱们怎么队列,那什么又务叫做队列类型的消息呢,它就成我们的点对点对点的消息啊,这两种消息类型呢,我们的呢,都支持呢,既支持广播类型的消息。
53:46
也支持队列什么点对点的消息,那么关于如何去使用,怎么约的,是什么消息,其实呢,也都会在咱们的系统课程里面来给大家进行详细介绍,好咱们这里呢,就简单给大家提一下,好再来看一下我们在瑞里面他所提供的嘛,数据的持久化,那通过刚刚的介上大家知道为S呢,它会把数据存储在咱们的内存当中的,那么你存储在内存里面的话,优点当然是读写速度呢。
54:19
会比较快,但是呢,内一层的缺点是,如果说内一层突然掉电以后,数据呢,将会丢失,那我们在re里面如何保证内存数据的安全呢?它有提供什么数据的持久化方式,并且呢,有两种方式,一种是我们的RDB,一种是我们的LF,好,这两个什么名词呢?大家需要去了解一下,首先大家需要知道什么是我们的什么。RDB首先它全称写下RDB什么就全称是什么,全称是我们的么约database啊全是约什database塔斯它什么它是我们的认是你们呢默认的什么,你们呢默认的什么持久化发送它它是默认的什么默认的持久,持久化什么方式,本质呢就是执行我们的快照像吧,RDB呢,本质上本正就是嘛执行我们的嘛快照,那么它会每隔一段时间把内存这种数据以快照的形式直接写到咱们的RDB文件当中,这种持久化方,持久化方方式是我们默认采用的持化持有化方式,那它还有另外的一种持久化方式叫做咱们啊off,那什么叫做a off呢?它全称大家需要了解一下,就是我们要呃判。
55:49
你看我们的吧,On m发啊,那么本质呢,就是本质上本质就是什么通过记录什么日志的什么方式来实现咱们的数据持久化,但是注意下,我们在Windows里面默认采用RDB,并且呢,默认没有开启我们的AF,你需要通过修改参数文件来启用咱们的off功能来实现数据的持久化,那这个里呢,系统知识呢,当也都会被包含在直播间的什么下方的课程里面,好最后呢,再简单介绍咱们的集群啊对,那我们通常在使用window时呢,需要搭建咱们的集群,那并且呢,我们的V里面实现集群它有两种方式,一种是主从复制集群,那主从复制集群呢,注意啊,本质上是一种什么是一种备份你啊,主从复制集群本质是一种么?本质是一种。
56:49
一种一种备份,我在主库上面写入数据以后,它通过日志同步到重库上面,通过重置的方式呢,要达到备份的一种目的呢,当然主从复制就是它是一个什么,它是一个主从架构,既然它是一个主从架构,它就存在单点故障,因此咱们需要使用哨兵来实现它的ha,它跟我们在约德里面呢,还有集群的另一种方式,就是我们的什么约cast,什么叫约cast呢?它是一什么,它是一个分布式集群,既然它是一个分布式集群,它就能够去实现数据的什么分布式存储,并且呢,我们的red,它呢,它是呢,它是一个去域中心化架构,既然它是个什么去中心化架构,那么我们在red custom里面并不存在中心节点,因此呢,它就不存在咱们的单点故障问题,那这个里呢,还是1。
57:49
么样,那更加系统知识当然也都会被包含在直播间下方的这门课程里面,好简单介绍一下直播间下方的这门课程啊,那咱们每次直播时长大概呢,就只有一个小时,那利用这一个小时呢,仅仅只能够让大家有一个基本的了解,如果说大家系统学习的话,仅仅靠直播是不够的,因此呢,每次直播的时候,赵老师呢,都会推荐一门课程给大家,当了今天晚上推荐呢,就是因的是架构原理呢与高新的实战这个课程呢,全程都有赵老师主讲,并且呢,课程呢还会定期更新升级,会把更多内容呢包含在课程体系里面,注意啊,这门课程呢,已经被包含在了什么大数据课程里面,因为。
我来说两句