00:01
大家好,欢迎大家继续收看上硅谷的Linux云算视频,我是刘畅老师。那我们本节课呢,开始来讲一下我们的这种非关系型数据库了啊。我们非关系型数据库呢,统称为叫no circle,但其实呢,我们这个本课章节啊,主要讲的内容还是我们的啊,还是我们的red。我们主要拿我们的这个no so当中的来做一下讲解啊。我们先来讲一下这个关于no的概念啊。那么搜狗概念呢?其实在讲我们的这个数据库基础概念的时候,我给他讲到过。啊,这个no的一个,呃,意思指的是一个not only指的不仅仅是就是说是一种完全不遵循之前的数据。关系的这么一种模式,那。这个。2000年之前就有人这个提出来啊,很早九几年的时候就有,但是呢,这个发展的最高潮的地方是2009年,就是一零年左右,那它指的是用非关系模型来进行数据存储啊,非关系模型来进行数据数据存储。
01:04
那这是一种新的数据存储思维啊,那。这个呢,也是因为有另外一个原因,所以才会这种这种数据库运行而生的,是因为我们的随着我们的web2.0的网站兴起,那这个我们目前是处于web3.0阶段了啊,那Y820阶段是什么内容啊,Y8200阶段就是随处可见的网站啊。移动端啊,这个电脑端啊都有啊。然后呢,并且呢,我们这个。移动端还有这个电脑端上这个兴起的这种网购啊之类的啊,各种网站之类的个人博客啊。论坛之类的都都开始兴起之后,这个时候就已经是外边二零方。的时代了。传统的这种关系数据库呢,在应付web2.0这种模式上,呃。压力会非常大啊,压力会非常大,那特别是超大规模高并发的这种社交类的啊,WEB20纯动态的网站已经基本上是不太够用了啊,不太够用了,那暴露了很多的这种问题和比较难克服的问题,而非惯性数据库呢,则根据这种特点啊,非常迅速发展,并且赢得了这种。
02:11
广泛的一个使用和欢迎。No,主要就是为了去解决大规模的数据,呃,集合和多重数据类型的一个挑战。啊,尤其是应对大数据的难题,那这个地方我们简单去列了一下,关于我们目前这个主流的no circle数据库的一个类型啊,以及常见的数据库的名字啊,OK,比如说嗯。嗯,建筑队类型的啊,比较多的就是啊。啊啊。然后呢,主要的场景是用于缓存啊用。于处理这种大数据的高访问的并发的这种负载啊,也常一些日志的一些统计等等啊。通常它使用建制对模型来进行建立这种数据结构,那查询速度比较快,至于其他的呢,说实话,我们这个生产环境中有用吗?有用,但是相对来说没有,这个建筑的这种类型用的比较多一些,比如说我们的列存储数据库。
03:12
啊HP啊Rick分布式这个呢,其实在这个数据分析上,大数据数据分析上用的相对比较多一些。然后文档型数据库啊,文档型数据库比较典型的就是猫目的地啊,Web应用与k value6这种建设都是很相似啊,很相似OK,然后呢,再一个就是图形结构的数据库,这种我们用的相对比较少一些啊,社交网络啊,推荐系统等等啊。用的相对比较少一些。那我们来看一下关于no circle的特性,No circle的个是KY6这种建都方式存储,和一般的这种关型数据库不一样,它呢不遵循我们之前所说的那些标准啊,必须是有什么这个横纵坐标组成的二维表结构呀,这个必须要有什么约束呀,字段必须是怎么怎么样,这没有这些东西啊。
04:03
他不遵循这个东西,那这类数据库的特点是非关系型分布式开源的水平,可扩展啊,能够处理超大量数据,而且击碎了数据这个性能瓶颈,对高并发、高读写有很强的支持性,对海量数据高效存储和访问有很大的一个优势啊,并且这类服务器啊,它的扩展性和高可用性比较强。那这是一个我们no circle数据库的一个这种。特性,那再一个就是我们说一下关于当中的。那呢,是一个比较开源的这个先进的k value,也就说是我们的no当中k value类型的这种数据库模型,那我。我们生产环境中其实用的特别多啊,用的特别多,那主要呢,我们是用来做一下我们的这种缓存操作啊。下我们先介绍的一个结构,然后再说在我们生长环境中的一个角色和身份啊,OK。
05:02
它呢被称为叫数据结构服务器,那因因为它的这种建筑对有五类建筑模型啊。通常包含我们的这个什么string字符串类型的啊哈希类型的,链表类型集合和有序集合类型,那这些数据类型都支持我们的这个push pop和ad remove等交集、并集、插集等更丰富的一些操作。像和我们之前在讲这个LP当中的这个ma catch有点类似,但是呢,Ma这个东西它的一个缓存呢,呃。或或者称之为叫缓存吧,它的缓存主要是通过人为的或者说脚本去进行一个这种内容的创建。而且呢,它。非是它不是数据库级别的啊,他不是数据库级别的。它支持的没有好啊。所以说这个red呢,一个是运行在内存里,然后那个效率比较高,第二个是它有周期性的往磁盘上同步的这么一个步骤,我们称之为叫什么呢?我们称之为叫这个持久化,那称为持久化会定期的周期的把数据更新写入磁盘,这就增加了我们数据的一个持久性。
06:13
那并且呢,实现了master slave主存同步模式。那master slave的概念其实在我们。这个学完了MY之后,这个概念应该非常清晰了啊,那也可以实现的,但是说实话。不是特别常用。那生产环境中最常用的这个red和MY的关系模型就是这个模型。Rep,直接找red server啊,Server呢啊,有自己的备服务器之类的,然。才去找进行数据啊查询。我们一般情况下我要起来干什么呀,做缓存啊。怎么缓存啊,大家都知道,我们这个假如说啊,从一个购物网站上进行这个买东西的时候。它的这个搜索栏啊,都东西非常多,我们就拿京东来举例子。
07:22
比如说我搜了一个关键词叫手机,搜完之后他提供给我的是什么,是品牌。屏幕尺寸、分辨率。系统。还有什么机身内存、CPU核心数,网络制式,电池容量,热点类型,前置摄像头等等等等,其实如果说我要想这个看更多的这个要求还有吗?绝对是还有的。这个时候你看着啊,我开始来搜了,比如说我要的是一个5.5~5.1英寸的。这个过过滤出来了很多,然后结果呢,只有700家的产品了。
08:01
然后说这个全高清FHD。他跟我只有200加了,一下子过滤了500加,我想要个128的。我。只有十家的产品,只有十个产品左右。只有八个产品啊,在选有什么人脸识别的。OK,你看,搜完之后发现就剩美图了啊,只有美图这么牛逼,能够生产出这么牛逼的手机了。当然啊,OK,我们来看上面的条件。对吧。这时候呢,可能啊,我刚以这些条件啊,搜寻完成之后呢,紧接着另外一个人啊,你先别管他在哪啊,另外一个人以和我一模一样的顺序和条件。在京东上做了一个搜索,那请问他搜索到的结果和我的是一样的吧?基本一样。有可能不一样吗?有,但几率很小。那再进行培享,那这个时候这个人和我,我俩的条件一模一样,那问你,我和这个人难道都去数据库里对数据进行了一次检索吗?那你想想,刚才我在没有点这个东西的时候,这个数据库里告诉我里边有多少类型的手机,我也没发现啊。
09:15
你删掉去看一下啊。他告诉我有5400家啊。当然,我感觉不应该有那么点。那然后呢,我通过这么多条件,他告诉我只有五个手机符合要求,那你想想从5400家里边找到五个符合条件的手机,它这个数据库的一个检索过程,是不是很浪费资源?肯定消耗一定时间啊,那另外一个人如果和我一模一样的权限去搜索,那如果再对数据库查一遍,那这个时候数据库是不是相当于做了额外的无用功啊,而且对吧,这个消耗的资源更多了,那如果同时有十个人按同样的条件查询呢?同时有100个人呢?这种巧合会出现吗?不好说,全国人民有这么多对吧,真不好说,那这个时候我们为了防止这种对吧,在。
10:03
很短的时间内,以相同的条件对于数据库查询的这种情况发生,以此造成的这种资源浪费,防止这种事发生,怎么办呢?我们就用red来做这个事。假设。我们呢,这个时候啊,首先哎。搞了一个专门来存荣耀系列手机的这个啊。这里边儿所有的记录都是关于荣耀手机的连接记录。然后呢,这个呢,是只记录3000~5000范围的手机记录,然后呢,假如说有个人这个。搞了两个条件,一个条件叫荣耀,一个条件叫价格三到5000,这个时候只需要做荣耀这个条件和价格三到5000这个条件,这两个数据内容的什么做什么,做交集就可以啊,做交集可以,做完交集之后,既符合荣耀又符合三到5000的那个交集,中间那一些是不是就是符合用户的,这个时候我把他们两个交集,哎,再重新建立一个数据库。
11:04
这个这个这个数据库的内容就是既是荣耀类型的手机,又是3000~5000的,然后这个东西的这个名字,我就起名叫荣耀3000~5000啊,或者三到5K。并且呢,这个数据库呢,它不是永久存在的,它是在几秒之内存在,那如果短时间内,也就说几秒之内有另外的一些用户。和我相同的一模一样的条件,然后来进行数据检索的时候,我就直接把这个检索到的结果告诉他这个用户就可以了,这个时候你会发现我们节省了非常大的资源。然后呢,让我们的这个。数据库能有更多的资源去为其他的这种查询去服务。那这就是的一个作用啊,这就。通过来快速的实现这种查询结果的缓存来减轻数据库的压力。
12:03
正常,所有数据都是存到MYSQL当中的,没有问题。但是呢,我们啊,在通过PP页面进行检索的时候,我们PP页面里边有这个red连接函数和ma函数,而且我在写这个PP页面逻辑判断的时候啊,只要有用户查询优先让他找。看red里边有没有用户要的那个东西,有则直接把东西给用户,没有则再用MYSQL函数再连MYS,再从MYSQL库里边一点点找,找到之后呢,首先第一个是给用户处以回一份,第二个是把找到的结果往里插一份,但是插入到里的数据并不是永久存在。所以说是做缓存的。它缓存内容什么?所缓存的内容就是从MYSQL里边查询出来的一部分数据。这个就是MY和一个关系,这就是我们讲的原因。我们就先把。
13:01
这个概念讲到这个位置,好了,我们接下来开始来讲一下关于的部署啊部署。VS官网是。RED2,然后呢,下载我们的这个red软件包,并且安装一下就可以了。应该是有这个软件算吧,我就不下载了,我直接上传一份就可以了。那个。版本更新很快啊,这个目前应该是五点几版本了,我现在这个地方有个二点几版本,那二点几版本和五点几版本它都有。并且呢,安装的这个,呃。怎么说呢,安装的这个这个这个这个方式啊基本一致,但是配置文件还是有些许不同的,这个啊,大家最好是去看一下一些帮助手册什么的,然后去了解一下啊。这个地方呢,我拿我拿这个2.8.6给大家演示一下,给大家演示一下。
14:00
上传成功之后,我们来看一下。套二杠XF把截一下。升级到下。安装方式呢,是这样的。进去之后直接make啊,直接make,然后make install,但是make install的时候呢,要用指定一下安装到哪个位置。为啥上来就直接make呢?因为省略了那个点消耗咖啡味就不了,因为make fire已经有了。所以说直接make。报错JZ命令没找着没。这样。Yam港湾。你要编译,不装编译工具肯定是不行的呀。
15:17
还有错误。GCCC加加的问题。C家看一下。还有错误。错误包含在这个文件,稍等一下,我们先这个把这个目录删除一下,重新来一次啊。
16:03
RM杠、RF。X软件。刚才是。第一遍执行报错之后,它已经产生了一部分文件,然后你再make,它就沿着原来那个错误的方向make,所以说就会有这样的问题。现在你重新解压一下就没有问题了。Make的时候,注意我们要使用刚刚perfect指一下安装路径啊,OK,在makecel中间来指引就可以了。我给确认一下有没有问题啊I。
17:03
Prex等于根下user。思想。安装完之后呢,这个去到。Local创建一个叫ETC的目光。MKD2根下的user local下出现一个叫ETC的某。大家都知道ETC应该存成啥了呀,配置文件对吧,对。想把这个,呃。目录下。唱歌。CP-A8。CP杠一把KF for的跟下user local ETC下。然后呢,再一个就是。
18:00
修改配置文件配置文件有这么几个需要修改。第一个是关于。后台运行的这么一个选项。啊。为ETC下,不对,叫use local ETC下的。搜一下daemon。I。默认是不允许潜艇运行的。们给它改成呃,后台运行的改成改成一。就默认允许后台运行了。其他不需要。启动的方式呢,是使用杠server这个命令指定配置文件来启动,但是呢,这个地方我们为了这个。执行的时候方便点,我们把命令给它链接一下啊。LN。杠S把跟下use local RA bin下的所有命令连接到use local bin下。
19:00
这样呢,命令就执行起来会方便多了啊。Server。然后呢,启动时要指定配置文件的位置啊。Use local。ETC下的。怎么来检测启动否呢?Net state-anp一下。6379,只要能看到一个TCP的637的监听端口就代表了。如果啊,这个地方你不去支配文件就会报错啊,就会质疑。数据库起来之后,我们要进行一个连接测试,怎么进行连接测试啊,很简单。User local。并写的RACR就是。杠H值IP-P值端口杠H密码杠N值连哪个库杠杠raw指的是?让支持住。
20:00
你就直接412就可以了。没有密码。也不需要,纸端口也不需要,什么都不需要。Sc sah。对,登录到数据库里边。停止。Really I。Shut down。Neate-antp一下。或者是用PQ。OK,这就是关于的一些概念,以及在我们这个。就是负责的范围内应该去怎么了解race和怎么维护。以及瑞的一些部署。那一些部署。好了,我们本节课就先讲到这,我们下一个再见。
我来说两句