全教育培训行业第三方平台平台就业机构
扫码试听
扫码试听
Q:2638333071
首页 > 行业动态 > > (一)Redis-NoSql是什么、能干嘛,与关系型数据库的区别(nosql和redis的关系)
行业动态 行业问答 课程问答 零基础学习 就业前景 技术干货

(一)Redis-NoSql是什么、能干嘛,与关系型数据库的区别(nosql和redis的关系)

发布时间:3 个 月 前 栏目:行业动态 浏览:

1、(一)Redis-NoSql是什么、能干嘛,与关系型数据库的区别



大数据时代到来,短视频和大量图片导致数据表非常大,频繁的查询导致传统的关系型数据库难以满足需求,因此非关系型数据库就应运而生。Redis数据库是NoSQL是一种,在分布式数据库的CAP原理中,Redis满足强一致性和高可用性,强一致性就是要保证数据的质量,高可用性即稳定性,本文简单介绍了非关系型数据库是什么、能干嘛,与关系型数据库的区别。



一、NoSQL定义


NoSQL(Not Only SQL),意即“不仅仅是SQL”,泛指非关系型数据库。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,例如谷歌或Facebook每天为他们的用户收集万亿比特的数据,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。



二、NoSQL的优势


1.易扩展


NoSQL数据库种类繁多,但有一个共同的特点是去掉关系数据库的关系型特性。数据间无关系,这样就非常容易拓展,无形之间在架构层面上带来了可扩展的能力。



2.大数据量高性能


NoSQL数据库具有非常高的读写性能,尤其在大数据量下,一秒钟写8万,读16万次



3.多样灵活的数据模型


NoSQL无需事先为要存储的数据建立字段,随时可以根据存储自定义数据格式,而在关系型数据库里增删字段,比如在存储微信用户信息的表里添加一个手机号字段,简直就是噩梦。



4.RDBMS和NoSQL


关系型数据库&非关系型数据库的对比







三、3V+3高



海量:微博


多样:呈现方式是图片、文字等,终端是手机、电脑、pad等。


实时:12306的铁路信息需要做到实时更新,但是做不到绝对的实时,只能做到准实时。



高并发:12306在抢火车票的时候是高并发的


高可扩(扩展性):


横向扩展:针对多台机器,多台机器整合成一个集群


纵向扩展:针对一台机器,2G不够了,插两条4G就变8G,但纵向扩展长期来看总有尽头




四、NoSQL数据模型简介




(一)以一个电商客户、订单、订购、地址模型来对比关系型数据库和非关系型数据库数据库


1.关系型数据库:






2.非关系型数据库:


就像一个jason串一样,被称为聚合模型




(二)思考


为什么上述情况可以用聚合模型来处理?


1.在关系型数据库里用left join 关联查询,但是涉及多张表,查询语句很长很复杂


2.跨库


3.分布式事务无法支持太多并发


·4.NoSQL只要查到客户信息的ID,所有的信息都放在一起,不用像关系型数据库查很多表





(三)、聚合模型


1.KV键-值对



2.文档型数据库(Bson格式比较多):见上截图






Monddb,最像关系型数据库的非关系型数据库



3.列存储数据库:








4. 图关系数据库:


就像我们复杂的亲戚人际关系,如:微博上你的好友关注什么话题
















五、在分布式数据库中CAP原理CAP+BASE


(一)CAP





ACID:传统的关系型数据库





CAP:NoSQL












CAP只能三个中满足两个,而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容错性是我们必须要实现的,我们只能在一致性和可用性之间进行权衡。


CA:传统型Oracle数据库


AP:大多数网站架构的选择


CP:Redis、Mongodb


强一致性(C),淘宝商品的点赞数不用做到强一致性;但公司每日的早晚打卡软件就需要做到强一致性,不然影响员工的KPI


高可用性(A),网站不能崩了


分区容忍性(P)



补充:C与A的选择








(二)BASE


双十一当时可能商品点赞数10000,但是只统计到6000,是弱一致性,但是高峰结束之后还是想让数据不那么离谱,所以加上BASE,BASE最重要的就是最终执行





牺牲C,换取AP







集群就相当于之前的负载均衡



(一)Redis-NoSql是什么、能干嘛,与关系型数据库的区别

标签:操作简单oracle数据库数据格式网络高性能字段分区集群


(一)Redis-NoSql是什么、能干嘛,与关系型数据库的区别

2、redis是什么型数据库


什么是Redis

redis是一个nosql(not only sql不仅仅只有sql)数据库,翻译成中文叫做非关系型型数据库。

一、什么是nosql?

NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:

1、High performance - 对数据库高并发读写的需求

web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。其实对于普通的BBS网站,往往也存在对高并发写请求的需求,例如网站的实时统计在线用户状态,记录热门帖子的点击次数,投票计数等,因此这是一个相当普遍的需求。

2、Huge Storage - 对海量数据的高效率存储和访问的需求

类似Facebook,twitter,Friendfeed这样的SNS网站,每天用户产生海量的用户动态,以Friendfeed为例,一个月就达到了2.5亿条用户动态,对于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。再例如大型web网站的用户登录系统,例如腾讯,盛大,动辄数以亿计的帐号,关系数据库也很难应付。

3、High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求

在基于web的架构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,你的数据库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移,为什么数据库不能通过不断的添加服务器节点来实现扩展呢?

NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

二、NoSQL数据库的四大分类

键值(Key-Value)存储数据库

相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB 典型应用: 内容缓存,主要用于处理大量数据的高访问负载。 数据模型: 一系列键值对 优势: 快速查询 劣势: 存储的数据缺少结构化 列存储数据库

相关产品:Cassandra, HBase, Riak 典型应用:分布式的文件系统 数据模型:以列簇式存储,将同一列数据存在一起 优势:查找速度快,可扩展性强,更容易进行分布式扩展 劣势:功能相对局限

文档型数据库

相关产品:CouchDB、MongoDB 典型应用:Web应用(与Key-Value类似,Value是结构化的) 数据模型: 一系列键值对 优势:数据结构要求不严格 劣势: 查询性能不高,而且缺乏统一的查询语法

图形(Graph)数据库

相关数据库:Neo4J、InfoGrid、Infinite Graph 典型应用:社交网络 数据模型:图结构 优势:利用图结构相关算法。 劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

三、Redis基础

redis是将数据存放到内存中,由于内容存取速度快所以redis被广泛应用在互联网项目中,redis优点:存取速度快,官方称读取速度会达到30万次每秒,写速度在10万次每秒左右,具体限制于硬件。

缺点:对持久化支持不够良好。

所以redis一般不作为数据的主数据库存储,一般配合传统的关系型数据库使用.

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:

字符串类型 散列类型 列表类型 集合类型

四、redis的应用场景

缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用) 分布式集群架构中的session分离。 聊天室的在线好友列表。 任务队列。(秒杀、抢购、12306等等) 应用排行榜。 网站访问统计。 数据过期处理(可以精确到毫秒)

(一)Redis-NoSql是什么、能干嘛,与关系型数据库的区别

3、redis是关系型数据库吗

redis不是关系型数据库。

关系型数据库,是指采用了关系模型来组织数据的数据库。在关系型数据库中,数据被组织成一系列的表格,表格中的每一列被称为一个属性,每一行称为一个记录,记录表示实体的实例。

在Redis中,每个键对应一个唯一的值。虽然Redis支持存储多种数据类型,包括字符串、列表、集合、有序集合和哈希表,但这些数据类型并不是通过关系模型来组织的。因此,Redis被归类为非关系型数据库(NoSQL)。

总的来说,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它是一个NoSql(Not Only SQL)类型的数据库,也被称为非关系型数据库。

redis的特点

1、数据的持久化:Redis支持将内存中的数据持久化到磁盘中,这样即使系统出现故障,数据也不会丢失。

2、数据的备份:Redis支持master-slave模式的数据备份,这样可以在主服务器出现问题时,从服务器可以接替主服务器的工作,保证数据的可用性。

3、丰富的数据结构:Redis支持多种数据结构,如字符串、列表、集合、有序集合和哈希表等,这使得Redis可以适用于多种应用场景。

4、原子性操作:Redis的所有操作都是原子性的,这保证了在执行这些操作时,不会被其他操作干扰。同时,Redis还支持事务,事务是一组原子操作组成的,它们可以一起执行。

5、快速的数据读写:Redis将所有数据都存储在内存中,这样可以实现快速的数据读写。即使读取操作都存在内存当中,但最终它也是支持数据持久化到磁盘当中。

4、什么是NoSQL数据库?

2. 什么是NoSQL?

2.1 NoSQL 概述

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,

泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。

(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

2.2 NoSQL代表

3. 关系型数据库与NoSQL的区别?

高度组织化结构化数据

结构化查询语言(SQL)

数据和关系都存储在单独的表中。

数据操纵语言,数据定义语言

严格的一致性

基础事务

关系型数据库遵循ACID规则

事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性:

A (Atomicity) 原子性

原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。

C (Consistency) 一致性

一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。

I (Isolation) 独立性

所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。比如现有有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的

D (Durability) 持久性

持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

代表着不仅仅是SQL

没有声明性查询语言

没有预定义的模式

键 - 值对存储,列存储,文档存储,图形数据库

最终一致性,而非ACID属性

非结构化和不可预知的数据

CAP定理

高性能,高可用性和可伸缩性

分布式数据库中的CAP原理(了解)

CAP定理:

Consistency(一致性), 数据一致更新,所有数据变动都是同步的

Availability(可用性), 好的响应性能

Partition tolerance(分区容错性) 可靠性

P: 系统中任意信息的丢失或失败不会影响系统的继续运作。

定理:任何分布式系统只可同时满足二点,没法三者兼顾。

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,

因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:

CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。

CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。

AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。

而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。

所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。

说明:C:强一致性 A:高可用性 P:分布式容忍性

举例:

CA:传统Oracle数据库

AP:大多数网站架构的选择

注意:分布式架构的时候必须做出取舍。

一致性和可用性之间取一个平衡。多余大多数web应用,其实并不需要强一致性。

因此牺牲C换取P,这是目前分布式数据库产品的方向。

4. 当下NoSQL的经典应用

当下的应用是 SQL 与 NoSQL 一起使用的。

代表项目:阿里巴巴商品信息的存放。

去 IOE 化。

ps:I 是指 IBM 的小型机,很贵的,好像好几万一台;O 是指 Oracle 数据库,也很贵的,好几万呢;M 是指 EMC 的存储设备,也很贵的。

难点:

数据类型多样性。

数据源多样性和变化重构。

数据源改造而服务平台不需要大面积重构。

上一篇:没有了
技术干货
零基础学习
行业多年深耕,从这报名,学费立减800
  • 岳同学180****1241刚刚成功领取
  • 胡同学134****6431刚刚成功领取
  • 李同学150****6122刚刚成功领取
  • 张同学136****2231刚刚成功领取
  • 孙同学178****5521刚刚成功领取
  • 齐同学156****7788刚刚成功领取
猜你喜欢
查看更多
相关推荐
查看更多
现在学习,我的薪资能达到多少?
立即报名

联系我们:

Q:2638333071

鄂ICP备2023015464号