Redis学习(二)-------Nosql数据模型,四大分类及CAP原理

本文详细介绍了NoSQL数据库的四种主要类型:键值存储、列存储、文档型和图形数据库,对比了各自的优缺点及适用场景。同时,探讨了传统数据库的ACID规则与NoSQL数据库的CAP理论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nosql数据模型
聚合模型

  • KV键值
  • Bson :BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,
    它和JSON一样,支持内嵌的文档对象和数组对象
  • 列族 :顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,
    对针对某一列或者某几列的查询有非常大的IO优势。
  • 图形

数据库的四大分类
<1>键值(k-v)存储数据库
这是最常见的Nosql数据库,它的数据是以key-value的形式存储的。key-value模型对于IT系统来说优势在于简单、易部署。它的处理速度非常快,但是基本上只能通过key的完全一致性查询数据如果DBA只对部分值进行查询或者更新的时候,key-value就显得效率低下了。根据数据的保存方式可以分为临时性、永久性和两者兼具三种。例如;Redis,Oracle。
<2>列存储数据库
这种数据库通常是用来应对分布式存储的海量数据。键依然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:HBASE,Cassandra,Riak。
<3>文档型数据库
文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。
<4>图形数据库
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。如:Neo4J, InfoGrid, Infinite Graph.

四大分类对比

分类Example举例典型应用场景数据模型优点缺点
键值(key-value)Redis,Oracle,Voldemort内存缓存,主要同于处理大量数据的高访问父负载,也用于一些日志系统key指向value的
键值对,通常用
hsah table来
实现
查询速度快数据无结构化,
通常只被当做字符串
或者二进制数据
列存储数据库Cassandra,HBASE,Riak分布式的文件系统以列族式存储,
将同一列数据存在一起
查找速度快,
可扩展性强,
更容易进行分布式扩展
功能相对局限
文档型数据库CouchDB,MongoDbweb应用(与Key-Value类似,
Value是结构化的,不同的是数据库能够了解Value的内容)
key-value对应的键值对,
value为结构化数据
结构数据要求不严格,
表结构可变,
不需要像关系型数据库一样需要预先定义表结构
查询性能不高,
而且缺乏统一 的查询语法
图形数据库Neo4j,infoGrid,Infinite Graph社交网络,推荐系统。
专注于构建关系图谱
图结构利用图结构相关算法。
比如最短路径寻址,N度关系查找等
很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式额集群方案

适用情景
1、数据模型比较简单
2、需要灵活性更强的IT系统
3、对数据库性能要求较高
4、不需要高度的数据一致性
5、对于给定key,比较容易映射复杂值的环境

传统数据库的ACID规则
1、A(Atomicity)原子性
原子性就是说事务里的所有操作要么全部完成,要么全部都不做,事务成功的条件是是事务里所有的操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。
2、C(Consistency)一致性
一致性是说数据要一直处于一致的状态,事务的运行不能改变数据库原本的一直性约束。
3、I(Isolation)独立性
所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,他所访问的数据就不受未提交事务的影响。
4、D(Durability)持久性
持久性是指一旦事务提交后,他所做的修改将会永久保存在数据库上,即使出现宕机也不会丢失。

CAP理论
CAP理论是Brewer教授提出的:一个分布式系统不能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)。最多只能同时较好的满足两个
因此,根据CAP原理,将Nosql数据库分成了满足CA原则、CP原则、AP原则三大类;
CA:单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。(传统型数据库)
CP:满足一致性,分区容错性的系统,通常性能不是特别高。(Redis、MongoDB)
AP:满足可用性,分区容错性的系统,通常可能对一致性的要求要低一点。(大多数的网站架构选择)

CAP详解
<1>一致性(Consistency)
对于所有客户端,具有唯一的、最新的、可读的版本的数据。这和前面的ACID的一直性不太一样。这里的一直性主要关注的是多个客户端从多个复制分区读取的内容并得到一致性的结果。简单的说就是所有节点同一时间看到的是相同的数据;
<2>可用性(Availability)
不管是否成功,确保每一个请求都能接收到响应。
<3>分区容错性(Partition Tolerance)
即使数据库分区之间存在通信故障,系统仍然保持响应客户端请求的能力。

注:CAP定理只适用于集群中出现连接故障的某些情况。网络越可靠,需要考虑CAP定理的可能性就越低

如有总结不当,有问题,错误的地方请大家予以指正,共同学习,共同进步

参考资料
(https://yq.aliyun.com/articles/96844/?spm=a2c4e.11153940.blogcont96902.25.3cd6370cqpe6l9)
(https://blog.youkuaiyun.com/xiaojin21cen/article/details/81355811)
https://yq.aliyun.com/articles/47327?spm=a2c4e.11153940.blogcont96844.26.7e637e8aaIcPJc
(https://yq.aliyun.com/articles/524924?spm=a2c4e.11153940.blogcont96844.19.7e637e8aaIcPJc)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值