00:00
那么今天晚上呢,咱们着重来介绍一下no c Co数据库当中的LIS,那么咱们希望通过今天晚上的这个学习,能够让大家对我们的lowcq数据库,尤其是对reds呢,能够有一个进一步了解,当然lowcq数据库里面包含很多很多,张老师呢,也会在后续的直播课程里面单独的来给大家介绍其他的lowc口数据库,好,这个地方咱们简单的先说一下,那么总体上来说呢,我们能够把这个什么呢?Low c库数据库划归到我们的这个大数据体系里面,那么这句话呢,我再重复一遍,好,我们可以把什么,总体上来说,我们能够把这什么呢?Low c口的数据库划归到我们的大数据体系里面,因此呢,大家后据如果要系统的去学习大数据的知识,那么需要去学习我们的loc com.
01:00
比如说在我们的什么哈do po生态圈体系里面,它就包含了一个lowc code数据库,那么就是我们的HV,那么关于大数据的知识,比如说到底什么是哈杜PO18课或者是flink呢?赵老师也会在后续的直播课程里面单独的来给大家进行介绍,今天晚上重点呢将会介绍我们的约点是大家之前哈听过赵老师的课程的话,那么应该都知道,赵老师呢在上课的这个过程当中,会给大家记录一个课堂的笔记,通过记录课堂笔记的方式,我们会把课程里面比较重要的知识给大家记录下来,因此呢,今天晚上咱们也会按照同样的这种方式来给大家记录一个课堂的笔记,重点给大家介绍以下三个方面的。
02:00
问题,那么首先咱们需要对noico的一些基本知识要有一个初步了解,到底什么叫做noico数据库,它跟我们传统的这个关系型数据库又有哪些区别?那么哪些数据库属于我们的lowcy code, 它又有哪些特点?那么这些知识都会在我们的第一个小节来给大家进行相关的介绍。那么有了基本的了解以后,我们将会在第二个小节讨论一下,当我们把原son安装部署好以后,它提供了哪些命令脚本,这些命令脚本的功能和作用分别是什么?当然我们也会结合一个具体的应用案例来看一下我们可以把real应用在什么样的场景之中。最后呢,咱们来讨论一下realism,它除了基本的数据保存、数据查询能力以外。
03:00
它还提供了哪些高级的特性,因此呢,现在呢,咱们就按照这样的一个顺序,一个一个来给大家进行相关的这个介绍,首先咱们看一下第一个部分no c库数据库的基础知识,好,这个地方首先问一下各位直播间的同学,能不能够告诉一下赵老师,到底什么是我们的low CQ啊,你能够把low CQ数据库的基本的概念发送到咱们的公屏之上吗?到底什么叫nocyo?如果说大家都清楚呢,就请积极回答一下赵老师的问题啊,如果说大家不是很了解,就请在我们的公屏之上,请给赵老师呢回复一个0,或者给赵老师呢点一个赞啊好,咱们接着往下来给大家进行相关的这个介绍,那么到底什么叫做lowcy口呢?那这基本。
04:00
概念大家呢,需要非常的清楚,那么首先大家需要知道low cle的什么呢?它的全称是什么呢?它是我们的lot term n clel, 如果说你直接从什么字面上把它给翻译过来的话,那它它什么?它指的就是嗯,不仅仅啊,不仅仅是我们的C,那这个呢,是从咱咱们字面上去理解,到底什么叫做no cle, 但是呢,请大家注意no c的什么真正含义,它表示什么呢?它泛指所有的非关系型数据库,这一句话很重要,我给大家记下来啊,Lowcy口的真正含义它表示什么?泛指所有的非关系型数据库,对,那么因此呢,如果说你要知道到底什么叫做非关系型数据库,什么叫Lucy com, 那么首先咱们就需要知道到底什么是。
05:00
关系型数据库,当你把关系型数据库掌握以后,反过来去理解什么是非关系型,什么是no c口呢?自然而然的就明白,那还因此我们在讨论low c口,TM对,先讨论一下另外的一个问题,什么是我们的关系型数据库,那比如说你的这个什么or你的MYSQL等等,这些都是属于传统的这个关系型的数据库,对好,赵老师呢,顺便又需要问大家一个问题,各位直播间同学,你能不能够把这个关系型数据库的基本的定义和概念发送到咱们的公屏之上,尽管这些概念非常的基础,但是呢,赵老师认为越是基础的知识,那么越是重要的,那如果大家认同赵老师的观点,就请在我们的公屏之上。
06:00
回复一个1啊,或者给赵老师呢点个赞,首先去讨论一下什么是我们的关系型数据库呢?关系型数据库它是什么?基于关系模型啊,我们基于关系模型我们所提出来的一种数据库就叫关系型数据库,那接着再往下面去讨论,什么又叫做关系模型呢?关系模型的本质是我们使用一张二维表的行和列的方式来存储数据的模型,就叫做关系模型,那换句话去说,在我们的这个oraclel里面,MYSQL里面,最终存储数据的模型都是二维表的行和列,这个是关系型数据库的什么最基本的一个概念和定义,那么当你理解了什么什么是关系型数据库。
07:00
以home反过来去理解什么是非关系型数据库,自然而然的就明白了,那么也就是说在我们的OC库里面,在我们的非关系型数据库里面,它存储数据的模型可能就不是二维表的行和列,比如说在我们稍后讨论的什么radius里面,它将是以我们的么key value方式的存储数据,对,而在我们的mango DB里面呢,它采用的是我们的B审格式来存储数据。因此呢,这句话我再重复一下,那么我们在low c里面,或者说我们在非关系型数据库里面,它最终存储数据的模型,那么就不是这种二维表的行和列,并且呢,还有点很重要的是什么呢?在我们的locy com里面,它是反方式的,那么什么叫反方式呢?那么你在这。
08:00
这个关系型数据库里面,比如说你在Oracle里面,Mycyle里面,你去设计表结构的时候,对,那么咱们需要干嘛呢?遵循范式的要求,那么而我们的Lucy com它是反方式的,不遵循范式,因此呢,这个地方咱们就需要深入下去讨论一下,为什么要遵循范式,反方式以后它会有什么样的问题呢?首先咱们讨论一下,为什么我们在这个关系型的数据库里面需要遵循范式呢?那么遵循范式以后。它所带来的优点是它能够去减少数据冗余,但是正因为它有这样的一个优点,同时也就带来这个缺点,缺点就是嗯,它会影响查询的性能,那么关于我们的关系型数据库更加深入的知识,赵老师呢,会在后续的直播课里面单独的来给大家进行介绍,这个部分呢,今天晚上不是重点,那么既然你的什么no com他是反方式的,既然是反方式的他就不遵循方式,那你不遵循范式以后的它所带来的什么呢?缺点就是什么?缺点就是它会什么造成数据冗于数据,它会多存,那么但是呢,它所带来的什么优点就是它能够去什么提高啊,提高查询的什么效率。
09:40
因此我们讲整个的Lucy,它的出发点可能跟我们传统的这个关系型的数据库呢,正好是。截然相反的呢,还有了这些基本的知识以后,那么接下来呢,我们需要进一步的去讨论一下一些比较常见的什么呢?Lowc库数据库,好,问一下各位直播间的同学,你能不能够把一些比较常见的low c库数据库的名字发送到咱们的公屏之上,如果说大家都了解呢,就请积极回答一下张老师的问题,如果说大家不是很清楚呢,就请在我们的公屏之上回复一个0,或者给赵老师呢点一个赞,让赵老师能够知道大家都还能够跟得上赵老师的节奏,好赵老师呢,在这一课地方把一些比较常见的low c口数据库给大家做一个介绍,好,当然首先要给大家介绍什么,第一个呢,就是我们的约点视好这里。
10:51
那那问一下各位直播间的同学们,你能不能够把约德son它最主要的特点发送到我们的公屏之上,Realism目前被得到了什么非常广泛的应用,那么它有哪些特点呢?给大家先记录下来的,首先大家需要知道re呢,它是什么?基于内存的什么建子啊,基于内存的什么建子数据库基于k value的方式,那么这句话呢里面呢,它就有两层含义,首先第一层含义。
11:28
约定是它是什么基于内存的,那么它的所有所有数据读写操作都是在内存上完成,既然它是都在内存上的完成的,那么整个的什么读写的性能会非常非常的快的,这个呢是基于内存的方式,它的一个优点,那么正因为它有这样的一个优点,同时也就带来了一个缺点,缺点就是内存它是一个不安全的地方,那么你把数据存储在内存里面,如果说内存突然宕精,突然掉电以后,那么数据呢都将会发生丢失,那么既然是如此的话,问一下各位直播间的同学,能不能够告诉一下赵老师,我们在reds里面通过什么样的方式。
12:28
来保证内存数据的安全,那么你能够把这种方式发送到咱们的公屏之上吗?这些知识都是我们后续在系统学习的时候需要掌握的内容,好,先简单的来给大家进行一个介绍。约为的是你们呢,为了保证数据的安全,它通过什么呢?数据持久化的方式,那数据持久化它是属于什么约的一个高级特性,那么什么叫持久化呢?持久化就是说我们通过这样的一种方式,我们可以把内存中的数据写到文件上,那么写到文件上去以后,当内存的数据丢失以后,我们能够通过读取文件来去恢复内存中的数据,并且呢,我们在red里面,它支持两种类型的数据持久化,一种是我们的RDB的方。
13:28
方式,嗯,一种是a off方式,这两种方式嗯,都是我们在Rex里面提供的数据持久化方式,它能够保证内存中的数据的安全,那么关于这个里面更加系统的知识,放到稍后呢,来给大家进行一个介绍,好这个呢是整个red它的第一个特点,它是基于内存的,那么它的第二个特点是什么?它是一个建值的一个什么key value类型的数据库,那么什么叫兼值数据库呢?那么你在RAS里面,不管是读写数据都是通过K来去操作我们的value,对,那这个呢,就是整个Li里面它的第一层第二层含义,那这个里呢,涉及到的更加系统知识,我们放到稍后呢,来给大家进行DEMO演示,好这个呢是我们要给大家。
14:23
介绍的什么呢?第一款比较常见的我们的lowc code的数据库,接着介绍我们的第二款,那么就是我们刚刚提到的什么呢?Mongo DB, 那mango DB呢,注意像它是所有no c库当中最像关系型数据库的一个no西库,这句话我再重复一下,Mango DB, 它是所有的no西库数据库当中最像关系型数据库的一款no c口数据库,好,这里呢?赵老师呢,就需要问大家一个问题,你能不能够把mango DB的数据模型,它按照什么方式来存储数据,能够把它的特点发送到咱们的公屏之上啊,如果说大家了解呢,就请积极回答一下张老师的问题啊,如果说大家不是很清楚呢,就请在我们的公屏之上回复一个0,或者给赵老师呢点一个赞,让赵老师呢能够知道大家都还能够跟得上赵老师的节奏,好,咱们接着讲啊,那mango DB它最主要的特点是它是什么呢?它是基于B省文档的,什么基于B省文档的low c库数据库,那么这地方怎们可能呢?就需要就解释一下什么叫做B省文档,BS文档它是接省文档的二进制的形式,嗯,那通过接省文。
15:59
文档我们能够保存数据,并且呢,有了这种方式以后,我们在mango DB里面四进表的结构的时候呢,因此呢,它就有两种设计方式,一种方式写下是我们的什么引用方式,一种方式是我们的什么嵌入方式,这两种方式都是我们在mango DB里面设计表结构的时候呢给使用的方式,那引用方式就非常类似关系型数据库的外接M,好,关于这个什么呢?Mango DB更加系统的知识,张老师也会在后续的直播课里面给大家进行相关的介绍。好接着呢介绍咱们的第三款的low西课数据库,那就是我们的h base, 首先大家需要知道h base.
16:56
属于我们的哈do生态圈体系,刚刚提到了我们可以把整个的Lucy com划归到我们的大数据体系里面,因此呢,大家后续如果要系统的去学习大数据的知识,需要去学习我们的东西。Q对,那么关于大数据的更加系统知识,当然赵老师也会在后续的直播课里面单独的给大家进行介绍,好简单介绍一下到底什么是HP,是它属于哈多普顿,并且它最主要的特点是什么呢?它是基于HDFS之上的什么列是存储的数据库,这个地方它就有两层含义,首先它的第一层含应他是基于HDFS之上,好问一下各位直播间同学知不知道什么是HS,如果。
17:56
中大家知道就请给张老师呢,回复一个1,如果说大家不知道,就请给张老师呢,回复一个0,这个呢,都是我们后续你在学习哈多的时候呢,需要重点掌握的知识,简单介绍一下,什么是HDHDFS,它是属于哈都普里面的分布式文件系统,它能够以文件的方式解决海量离线数据的存储问题,你把HDFS看成是一个网盘就可以啊,那既然是如此的话。
18:37
你的h base上基于HDFS之上,那么你在h base里面呢?你所创建的一张表,表中的数据最终都将以目录和文件形式存储在HDFS里面,并且有了这个关系以后,你在部署环境的时候,首先就需要先安装部署好HDFSMHDFS,部署好以后再来部署我们的HPS是。那么HPS它的第二层含义呢?它是一个什么?列式存储的数据库,那么列式存储跟你的行式存储它有什么区别呢?好,讨论一下传统的关系型的数据库,比如说or my CQ这种关系型的数据库,他们都是行式存储的,行是存储的什么数据库呢?主要适合执行我们的插入、更新和删。
19:37
分储主要适合执行DML的什么事务操作,那么反过来去说,这种关系型的行式数据库呢,就并不适合执行我们的查询语句,比如说我们在构建数据仓库的时候,由于我们在数据仓库里面需要去执行大量的什么查询语句,如果是这种应用场景呢,推荐使用我们的列式存储与呢,列式存储非常适合执行查询操作,因此呢,讲到的地方顺便提一下,那么大家需要去了解每一种类型的数据库,它的应用场景,这样子呢,可以为我们以后的技术选型做一个参考,好因此介绍到这个地方的时候呢,有关今天晚上的第一个问题啊,有关NOC口数据库的一些基本知识就给大家介绍到这里啊,那至于这。
20:37
里面涉及到的大数据,涉及到的什么关系型数据库的知识,赵老师呢,当然也会在后续的直播课里面给大家进行相关的介绍,好问一下各位直播间同学还能不能够?跟得上赵老师的节奏,如果说大家都还能够跟得上呢,就请在我们的公屏之上,请给赵老师呢回复一个666,或者给赵老师呢点一个赞好,有的这些基本知识以后,接下来呢,咱们进入第二小节的学习,当你把reddison安装部署好以后,它提供了哪些命令脚本,这一些命令脚本的功能和作用分别是什么?当然我们也会结合一个具体例子来看一下我们可以把这个什应用在什么样的场景之中。首先咱们看一下red它提供的哪些命令脚本好直接切换到咱们的实业环境当中去,对进到咱们red安装的目录下,对进来以后呢,直接执行一个脆命令,它会塑行结个把目录展开那么整。
21:55
对,它所提供的命令脚本都在他的什么呢?并目录项,并目录是所有的什么命令脚本,而在它的康复目录下呢,有整个read么配置文件,因为从现在呢,咱们就需要讨论一下在并目录下面这一些命令脚本的功能和作用分别是什么?首先讨虑一下第一个,那就是我们的什么create c, 那这个命令脚本呢,它是在当今环境之上能够快速创建6个节点的,约是cast集群。对好,问一下各位直播间同学,知不知道什么是约德斯卡A,如果说大家知道什么是约德斯卡呢?就请在我们的公屏之上。
22:47
请给张老师呢,回复一个1,如果说大家不不知道呢,就请回这一个0啊,利用这个脚本能够快速创建六个节点的什么约定是卡,那到底什么叫约德卡呢?简单记录一个课堂笔记,他什red是3.0版本以后提供的一个分布式集群啊记到这个地方什么叫做我们的red卡的,那么记录个笔记本,让大家呢,能够知道讲了哪些内容的,他刚刚提到的什么radio casta这一版本啊,版本是叫什么,他在3.0以后,在它是3.0以后的什么3.0以以后的什么以后的的数据分布式存储的什么解决这么方案,那因此呢,通过使用咱们的red是卡呢,你能够去实现数据的什么分布式存储的耗。
23:48
这个呢是我们大家需要了解什么第一个命令脚本,接着看一下咱们的第二个命令脚本叫做什么benchnch mark的,如果你把这把这个bench mark翻,把这个bench mark呢翻成中文的话,它叫什么基准基准,那这个呢,Bench mark呢,它是我们在reddison里面提供的一个。
24:11
压力测试工具,比如说你在red里面,你要去模拟10万个操作,拿去测试一下red的性能,那你可呢使用这样的一个什么压力测试工具,好接着看咱们下面的两个脚本,一个叫做我们的切克a off, 一个呢叫check dump, 那么通过刚刚的这个介绍,我们知道了整个red里面它有两种数据持体化方式,一个呢叫RDB方式,那么一个呢叫a off方式,那通过使用这两种方式,你就能够把内存做的数据写到文件上,生成RDB文件,或者生成a off日志,那么咱们能不能够使用RDB文件或者使用a off日志来去恢复内存的数据呢?它就提供了什么这样的两个检查并修复的工具。那么上面的这个切。
25:11
A off呢,它是用于。上面的这个check a呢,它是用于检查并修复a of日志,而下面的这个check dump呢,它是用于检查并修复RDB文件,那么关于这里面呢,涉及到的数据持久化的更加系统知识,放到稍后来给大家进行相关的介绍。好接着看一下下面的这个叫CLM,那么它的全称是common line interface, 它是我们在red里面提供的一个命令行工具,它是一个客户端程序,既然它是一个客户端服务器端,就是从下面的什么就约的是server,当你运行的脚本的时候呢,它将会把原定s server默认运行在6379端口之上,但它是一种什么CS客户端服务器的结构。好倒过头来说一下上面的这个什么S,如果说你把这个什么S。
26:15
动翻译成是中文的话,它就做什么,它叫哨兵,那当你启动一个哨兵的时候,本质上就是启动了一个什么约定,是一个什么server,对,好,问一下各位直播间同学们,能不能够告诉一下赵老师到底什么是哨兵,哨兵它的功能和作用是什么?这些都是我们后续你在系统的去学习约的是什么需要重点掌握的知识,大家能不能够我告诉一下赵老师哨兵的功能和作用,如果说大家知道,那么就请积极回答一下赵老师的问题啊,如果说大家不是很了解呢,就请在我们的公屏之上。
27:02
回复一个0,或者给赵老师呢,点一个赞,那到底什么是哨兵呢?哨兵单独记录个笔记,记在咱们的这地方,到底什么是我们的什么哨兵啊哨兵它是约的是2.4版本以后提供的一个ha的高可用的一个解决的方案,对记录一下就可以,嗯,就是我们刚刚才的哨兵,它什么2.4版本后的提供的什么提供的高可用ha的解决方案,那因为呢,我们在reds里面能够去搭建主从复制集群,那既然是主从复制集群,它就是一个什么主从架构,而主从架构它所存在的最主要问题就是它存在我们的单点故障问题的,那为了解决单点故障呢,我们就需要使用哨兵来实现H。
28:03
BA的高可用很明显,你的什么这个red卡斯特和哨兵都是用在red德斯么这个集群当中,因此呢,通过刚刚的介绍,大家就该了解到我们整个red里面集群的实现方式有两种实现方式,一种实现方式是我们的red c, 而另呢是我们能够去搭建red呢主重复制集群,这两种方式都能够去实现约定什么这个集群,对,还有个这些基本知识以后。现在呢,咱们去把服务器端给它运行起来,再通过使用客户端连接到服务器上,默认将会连接6379端口的,他们进到我刚刚的令行上在执行执行并下面的什么我们的什么约定serve,对指定我们的配置文件在com复目录箱呢,有一个comredson.com复的,那么当你执行这一条命令以后呢,服务器端将会默认运行在6379的端口之上,那么咱们如何知道服务器端运行成功的呢?通过执行杠EF命令这一条命令,它将会以标准格式列出所有的后台的进程,好,咱们做一个简单的一个过滤,过滤中有关什么约点是server的什么相关的进程,那通过输出的信息我们会发现呢,后台有一个进程。
29:40
它的进程号是什么?95们91,它监听6379端口,看到了这种信息以后,就表示服务器端运行成功了,在使用客户端连接上去,那么咱们呢,就能够去操作我们的对它简单也示几个demom的事例,对执行并下面什么RA是C,而默认将会连接当前主机的637的端口,那么通过刚刚的这个学型,咱们已经知道它是一个k value类型的数据库,你不管读写数据都需要通过K来指定,并且呢,我们在lix里面。
30:23
它支持丰富的数据类型,比如说支付串,呃。比如说字符串、数值、哈希集合都支持,那咱们比如说简单保存什么字符串到约的是里面,对,通过K保存发对不对?Set呢?咱们什么hello word好,通过使用这一条语句好,咱们就保存那一个什么字符串,很明显咱们这个地方的什么hello是我的吧,Hello是我们的K,而word呢,是我们的value,通过使用这样的一种方式,我们就保存好一个什么支符串,当然也能够保存一个数字,比如说我们有多少钱呢?我们有1000块钱,Set money name, 我用1000块钱,那这样子呢,我就把一个数字也保存到了什么原里面,而这个地方的money name是我们的K 1是我们的value,对,这些都是属于基本的数据类型,当然我们在its里面也能够保存一个哈希集合,对。
31:30
比如说通过使用哈希集和我们来保存一个用户的信息,那么执行HM set, 创建一个什么哈希集合,把用户的ID号作为什么K,比如说USER001好,就是我们的K,后面的value呢,又生一个k value6,对后面的6注意下啊,又生一个VALUE6,那这个用户呢,名正是我们Tom,年龄是21岁,通过执行这一条语句,我们就创建好一个哈希结合,用来保存一个用户的信息,那说明一下这结构,那这个地方什么USER00YOUNG是我们的,怎么这个K是哈希集合的K,后面这一边是我们的value,而哈希集合的VALUE6本身又是一个k value6类型,那么因此通过使用这些语句,我们都能不能把数据保存?
32:30
到约里面,那既然你能够插入数据,当然也能够去查询数据,比如说我想去查询我有多少钱呢,通过K操作value率get呢,Money他将返回1000块钱,你也能够查询什么用户的信息,返回刚刚的什么哈希集合,通过K查询value,他将会把什么民政年龄呢都返回回来,对,因为从整个约定S什么的操作非常简单,那这地方需要注意下,那我们在默认的情况下,它是不支持CQL语句的,当然了你通过一些引擎也能够通过使用标准的什么C口L语句也能够去操作咱们然Li本身它是通过什么K来操作我们的value,还有从演示到这地方,问一下各位直播间的同学们,张老师们,刚刚演示的这几个非常简。
33:30
单个DEMO的示例大家是不是都看明白了啊,如果说这地方大家都看明白了呢,就请在我们的公屏之上回复一个666,或者给赵老师呢点一个赞。好,咱们接着往下来给大家进行相关的介绍,那接下来呢,咱们就通过一个什么具体的一个应用案例,我们来看一下我们可以把这个应用在什么样的场景之下,首先大家需要了解一下,那这个地方的案例它是谁提出呢?它是脸书哈,Facebook的,那么Facebook它使用什么约来统计网站用户的什么登录信息,并且呢,说一下这个应用案例,它是非常经典的一个应用案例,好,我们一起来阅读一下整个案例的一个。
34:30
什么背景,是什么背景,他们需要解决什么样的问题,大家请稍等一下,在好的阅读下这个案例的一个背景,假设我站网站运营的过程当中,需要统计用户的什么登录信息,网站的现状什么样子呢?现在我的网站我有一个用户,那么这1亿个用户呢,有的用户经常登录网站,有的用户呢不经常登录网站,因此首先我们所面对的呢,第一个问题就是如何去记录用户的登录信息,那第二呢是如何去查询活跃用户,比如说一个星期之内。
35:18
登录了什么三次网站,那么当我们拿到这个需求的时候,首先咱们就想能不能够使用传统的这个关系型数据库去解决呢?答案当然是可以的,比如说你在你的MYSQL里面,或者说你在Oracle里面创建一张表,实际上呢,是能够解决这个问题的,对表结构非常的简单,它就只包含两个name,一个是用户的ID号,一个是他的登录时间,那如果说一个用户他登录的网站,我就在这张表里面生成一条记录,那通过使用这样的一种方式,我不是就可以记录用户的登录信息吗?并且呢,我也能够去查询活跃的用户信息,但是你想你把这种类型的数据。
36:19
记录在咱们的关系型数据库里面,它会带来什么问题呢?网站现在呢,它有1亿个用户,对,还有1亿个用户,咱们假设一个比较极端的情况,这一个用户们每天都会登录网站,假设一下我们在星期一的时候,这一个用户都登录网站,他在这一张表里面呢,将会产生1亿条数据,用来记录了他们的登录信息,那按照同样的方式假设项目。我们在星期二的时候,这一个用户又登录网站,它将会再产生一条数据,假设像一个星期7天,这7天这一个用户都将登录网站,那么我将会产生呢?嗯。
37:13
我将会产生7亿条数据,用来记录什么他们的这种信息,那七一条数据对于任何的一个关系型数据库来说都是非常大的一个压力,因此呢,这种类型的数据就非常不适合保存在传统的这个关系型的数据库里面,那咱们有没有更好的方式能够去解决这个问题呢?答案当然是有的,那么你想一个用户他有没有登录网站,我用1或者0表示不就可以了吗?一表这个用户他在今天登录的网站,0表示他没有登录网站,那从这个方式呢,就比你把保存到就比你呢把它保存到关系型数据库里面呢,要好好咱来分析一下,咱们来分析一下,那假设一下。
38:14
我们在星期一的时候,这1亿个用户们也将会登录网站,他将会产生1亿个1,用来记录什么这一个用户他们的登录信息,那么你把这1亿个一,1亿个一换算成是兆,应该是多,当然大概是12兆,那我用12兆的一个数据。就能够记录一个用户一天的什么登录情况,那按照同样的这种方式,那我在星期二的时候,我再假设一下,这一个用户又登录网站,我再产生12条12兆数据,如果说一个星期七天,这一个用户都将登录网站,我最多产生7×12,最多产生84兆的数据,就能够记录呢,一个用户一个星期的什么登录信息,你把这84兆的数据直接存储在内存里面,或者他写到文件里面,是不是都可以,很明显这种方式。
39:30
比拟呢,保存在这个关系型的数据库里面就非常的好,对,那因为呢,我们在red里面它有一种按位操作,那么通过使用按位操作,我们呢,就能够实现这样的一个什么功能,它整个案例的什么背景,我们已经了解到了,那如何进行操作呢?简单演示一下什么是约德的按位操作,在切换到我们的命令行的工具里面,假设一下今天是星期一啊,用户ID号是23号的用户,他登录的网站,我就把这一位呢设置成是in,那怎么做呢?Set bit, 那么set bit呢,是整个我们的it里面,它所提供的暗位操作,假设今天是mondayam,星期一,用户ID号是243。
40:31
单号的用户他登录网站,我就把偏移量第23位设置成是1,那通过使用这样的一种方式,我就表示呢,这个用户他在这一天登录的网站,按照同样的方式也能够记录其他用户的登录信息,还是使用咱们的set be的,今天还Monday用户ID号是98号的用户它也登录网站,我就把偏移量式第98位呢也设置成in,通过使用这样的一种方式,我就表示这个用户他在这一天也登录网站,那如果说你要查询这个用户他有没有登录网站,只需要通过使用,那么get a bit, 如果通过使用get a bit, 返回值是in,就表示他在这一天登录的网站。
41:31
返回支持0,就表示他没有登录网站的,我要查询星期一Monday用户ID号是23号的用户,他有没有登录网站,这个地方返回值是1,那就表是他在这天登录的网站,那按照同样的这种方式,我想去查询用户ID号式123号的用户,他在星期一的时候有没有登录网站,返回值是0,就表示他在这一天没有登录网站,因此呢,这个案例呢,是非常经典的一个案例,它是脸书啊,Facebook呢,使用red,使用red的按位操作来统计网站用户的什么登录信息,那整个案例了解完以后呢,问一下各位直播间同学们,能不能够帮赵老师们总结一下这种。
42:31
按位操作它主要应用在什么样的场景之下,给大家10秒钟的思考时间,思考完以后你能不能够帮老师总结一下按位操作他主要用在什么样的场景之下,总结出来以后呢?请把你的答案发送到我们的公屏之上,好,大家呢可以积极跟老师们互动一下,让张老师呢能够知道大家都还能够跟得上张老师的节奏,对,好,给大家10秒钟的思考时间,思考完以后,请你把你认为的应用场景发送到咱们的公屏之上,那我们需要了解每一种功能,一种操作,它可以用在什么样的场景之下,好,这个地方说一下,这种安慰操作它主要用在哪些场景之下呢?当你的数据数只有两种情况,要么是音,要么是0,要么是真,要么是假,要么是男,要么是女,当数据只有两种可能性的时候呢,非常使用,非常适合使用按位操作来取代我们关系型数据库。
43:53
嗯,来存储数据的,因为此讲到这个地方呢,关于整个Facebook脸书他所提供的吧,这个案例呢,就给大家介绍到这里啊好问一下各位直播间同学们,关于赵老师们刚刚讲的这个案例,大家是不是都听明白了,如果说大家都听明白了呢,就请在我们的公屏之上,请给赵老师呢回复一个666,或者给赵老师呢点一个赞,那好大家都听明白了没有这些实际上。
44:31
都是属于什么,都是属于red什么它的基本的特性的,那red它作为一款数据库来讲,除了最基本的这个数据存储,数据读写能力以外,它还提供了什么哪些高级特性呢?这地方给大家列着几个,那这个里呢,那重点好论下看什么它的持久化,那么持久化刚刚讲过,那再重复一遍,那由于整个我们呢,它是基于内存的一个数据库,既然它是基于内存的数据库,它所有数据都将会被保存在内存里面,既然保存在内存里面的话,对读写性能会非常的快,那这个呢,它的一个优点缺点就是内存它是一个不安全的地方,如果你把数据存储在。
45:30
内存里面对内存掉电以后呢,数据都将会丢失,因此呢,为了保证内存中的数据的安全,约德呢他提供了两种数据持久化的方式,一个叫RDB,一个呢叫a off, 好问一下这位直播间同学,能不能跟告诉一下赵老师约定是默认采用的是哪种数据持久化方式,如果大家知道的话,就请把它的默认持久化方式到底是RDP还是AF呢?能不能够发送到?
46:10
能不能够发送到咱们的公平之上,这个知识点是我们在学习约定是什么非常重要的知识,对好给大将做一个介绍,那我们在默认的情况之下,它将会采用什么呢?默认将会采用RDB的方式来实现数据的持久化,那么到底什么叫RDB,什么叫a off呢?那么它的全称大家需要知道RDB的全称,它就把它叫约斯的约,简称就是我们的RDB,它的本质是什么?本质本质就是执行快照,通过执行快照的方式我们来实现数据这种持久化,整个RDB呢,它会每隔一段时间把内存的数据持久化的写到RDB文件。
47:11
等一下啊,这个是整个RDB它的一个工作机制和方式,给大家记录下来的RDB是什么,它会每隔每隔一段时间将什么,将内存中的数据写入什么,而DB文件中,既然你把内存的数据写写到了RDB文件上,对如果说内存的数据发生丢失以后,我重新加载,重新读取RDB文件,是不是就能够恢复内存的数据,就个是他默认的方式是RDB,但是呢,正因为它的这种执行的方式,那问一下各位直播间同学,你能不能够我告诉一下赵老师,这种RDB的数据持久化方式,它的优点和缺点分别是什么?首先问一下对子。
48:11
直播间同学能不能给告诉一下赵老师RDB的方式?它的优点是什么?如果大家了解的话,那么就请积极回答一下赵老师的问题啊,如果说大家不是很清楚呢,就请在我们的公屏之上,请给赵老师呢回复一个0,或者给赵老师呢点个赞,那RDB优点是什么优点了,点到以后,那么它的缺点又是什么呢?这些知识当然都会被包含在直播间下方的什么系统课程里面的,因为每次直播的时长大概呢就一个小时左右啊,那么利用这一个小时仅仅只能够让大家有一个基本了解,那如果说你要去系统学习的话,仅仅靠直播的一个小时那是远远不够的,那因此呢,每次直播的时候。
49:14
赵老师呢,都会推荐一门课程给大家,当然今天晚上推荐的就约德是架构原理与高兴的实战,这门课程呢,全程都由赵老师主讲,对变心的课程才会定心,更心会把更多内容呢包含在我们课程体系里面,对好,今天咱们回到课程里面来,再回到课程里面来讨论一下什么。讨论一下我们的,嗯。RDB的什么优点和缺点?首先讨论一下RDB的优点,优点是它的恢复速度会很快,但它什么恢复速度啊,恢复速度会很快,为什么?因为它是通过快照的方式,一次性把内存的数据都写到RDB文件上,那么因此呢,你使用这个RDB文件直接把导回装载回内存里面就能够去恢复数据,因此重复一下RDB方式,优点是恢复速度会很快,但是呢,它也有个缺点,缺点就是两寸RDB之间数据有可能会丢失,写下缺点,你看这两寸啊,写一下两寸RDB什么之间数据可能什么可能丢失,为什么可能会丢失呢?因为它。
50:44
它是每隔一段时间将数据写到RDB文件上的,那现在我们来分析一下为什么会造成数据的什么丢失,好这个呢,红线代表咱们的什么时间啊时间,比如说我在T1的时间上执行一个RDB文件,它把内存数据呢都写到RDB文件上,下次执行RDB的时呢,可能是我们的TR的这个时间点上,那如果是你在T一到T2之间,内存崩溃以后呢,你使用T1时间点的RTB文件,只能够把数据恢复到T1的什么时间点上,T1时间点以后的数据那就没办法恢复了,对,因此这个呢是整个RDB它的优缺点,从况下RDBM它是默认的持久化方式,它是每隔一段时间通过快照的执行方式。
51:43
一次性的将内存中的数据显到RDB文件上,优点是使用RDB文件,它的恢复速度会很快,缺点是两次RDB之间数据有可能会产生丢失,好,咱们切换到咱们实验环境上,看一下有没有产生我们的RDB文件,然后对吧,好,它应该默认产生下当前什么安装路径下在好在当前什么安装的路径下,大将已经发现了新生成这个文件,那就是这个吗?大部点RDB文件,好,这个文件就它的RDB文件,那如果说你的red内存数据丢失以后,当你重新启动约S时上,它将会把这个文件重新加载回内存,从而达到数据恢复的目的。对,好,就从讨论到这个地方呢,关于什么是约的RD。
52:43
病就给大家介绍到这里啊,问一下对位直播间同学们,关于约德斯的RD病大家是不是都听明白了,如果说这个部分大家都听明白了呢?就请在我们的公屏之上,请给赵老师呢回复一个666,或者给赵老师呢点一个赞。好,我们接着讨论一下什么是我们的a off的,那为了解决RDP的这个缺点,缺点是两寸RDB之间数据可能会丢失,因此呢,我们在read里面它提供了另外的一种数据持久化方式,就是我们的a off, 首先大家需要知道a off的全称是什么,它的全称是a pen的什么N写一下全称是a pen啊n five. 那怎么去理解什么是FF呢?它通过。
53:43
通过记录日志的方式来实现持久化的,他什么通过啊写,像他通过记录什么记录日志的,把日志记到咱们的a off文件里面,对如果说内存的数据丢失以后后我重数据丢失以后呢,我重新执行,我们在a off当中记录了日证,就达到了数据恢复的目的,对,但是呢,请大家注意下,那么咱们在默认的情况之下呢,这个呢,A off没有开启啊,默认没有开启好,咱们需要呢,去修改咱们的参数文件,对,那请用我们的AF日志启用以后,它将会自动产生一个后缀是点a off文件,把所有客户端的什么操作进到我们的a off日志里面,从那当数据发生丢失以后啊,通过重新执行日志文件。
54:43
电当中记忆录的么,高端操作呢,我们就能够呢,恢复数据供因从从功能上去说啊,从功能上就是说整个它的a off呢,它就相当于是什么相当于什么or嘛,这个re do日志啊,那redo日证是我们的or里面呢,非常重要的日志,它是orac克的重做日志,你在Oracle里面所有客户端执行的事务操作也将会被记录到orac克锐度日志里面,如果你在Oracle里面数据发生丢失以后呢,重新执行锐度日志里面它所记入的客户的操作呢,就能达到数据恢复的目的,因此重复一遍,从功能上去说。
55:29
从功能上讲,整个我们在这个read里面,它的LF日证,它就相当于是证or redo证,那关于这里面涉及到的or code更加系统的知识,张老师们也会在后续的直播课里面单独的来给大家进行介绍,还有说这些基本知识以后,现在咱们能不能够去把原来它的a off日证启动起来呢?启动以后呢,它会自动产生一个后缀是点a off的文件,对它简单也是一个demom的CD,需要去修改咱们的参数文件的VI下康复下面吧,原康复的他们直接在这个文件里面搜索一个关键字,就open的什么我们的n n five so一下得好,把行号打开好,最主要参数就是第509行的参数。
56:29
那就只能是默认是no no就表示我们在默认情况下没有请动我们的iffz,你需要把它改成yes,改成yes视以后重新启动认识,它将会产生下面的这个什么AF文件,那么通过使用这样的一种方式来实现数据的持久化操作,他我们衍示一个DEMO式列,把第509行改成我们嘛,改成我们的E,那因为咱们这个地方呢,先改了咱们的配置文件,还我们需要去重新启动一下it间,怎么重启呢?先把它给停下来,进到什么我们的客户端里面去,对好直接执行一个什么下档操作到停止完成以后再重新通过执行我们的吧,约定是serve的脚本呢,重新启动我们认识的,好这个呢,它将会在当前,目前呢。
57:30
生成一个后缀是点a off的什么文件,好,这个文件就是整个它的么a off日证你在客户端里面你所执行的所有操作都将会被记录到这个文件当中,如果说数据发生丢失以后呢,我只需要再重新启动约电时呢,重新执行日志文件里面它所记入的操作,就能够达到数据恢复的目的。还有呢,这个基本的知识以后大家能不能够帮张老师们总结一下a off方式,他的优点和缺点分别是什么呢?啊,刚刚讨论过RDB,那么RDB的什么优点是恢复速度快,缺点是两寸RDB之间数据可能会丢失,那大家能不能够也帮赵老师们总结一下a off方式?
58:30
优点和缺点分别又是什么呢?对,好,咱们给他讲一下它的优点是什么,它能够尽可能的保证数据安全啊,它可以尽可能的保保保证数据安全的,甚至于呢,它能够保严格保证数据不丢失,你需要去修改咱们的a off相关的配置,那它能够严格保证数据的安全,那它的缺点的呢?缺点就是它的什么恢复速度啊,恢复速度相对RTB来说呢,会慢一些,它需要把我们记录这样a off日志当中的所有操作都去执行一遍,才能够恢复数据,因此讨论到这个地方呢,我们就给大家详细讨论一下,什么是red持激化,什么是它的RDB,什么是我们的AF,它这个里面是。
59:30
能到的更加系统的知识与为直播的时间毕竟有限,这地方呢,就不一定给大家进行相关的介绍,对,那因此呢,如果说大家要系统的学习的话,那可以参考一下直播间推荐给大家的这门课程哈,价格。
我来说两句