NoSQL数据库的四大分类及四大特点

1.四种分类

1.key-value

Redis
键值对存储,特点:查询数据块
内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。

2.Colunmn列式存储
HBase
将同一列的数据放在一起,查询非常快

3.document文档存储

MongoDB
经典用于web项目中,与KeyValue类似,比如MongoDB主要应用在爬虫

4.Graph图结构存储

neo4j
用于社交网络,
在这里插入图片描述

Nosql特点:

1.易扩展

当一台机器不够用了,很容易添加一个新的服务器,只要配置好环境之后,自动使用。

2.大数据量、高性能

读写速度快,nosql基本都是内存数据库,比硬盘存储要快很多,查询数据快

3.灵活性

NoSQL无需事先为 要存储的数据 建立字段,随时可以存储自定义的数据格式,在关系型数据库添加字段和删除字段是非常麻烦的。

4.高可用

一台机器宕机出问题了,不会影响其他的机器

3.相关理论

相关理论
关系数据库理论:ACID
分布式系统:CAP
Consistency (一致性):

“all nodes see the same data at the same time”,即更新操作成功并返回客户端后,所有节点在同一时间的数据完全一致,这就是分布式的一致性。一致性的问题在并发系统中不可避免,对于客户端来说,一致性指的是并发访问时更新过的数据如何获取的问题。从服务端来看,则是更新如何复制分布到整个系统,以保证数据最终一致。

Availability (可用性):

可用性指“Reads and writes always succeed”,即服务一直可用,而且是正常响应时间。好的可用性主要是指系统能够很好的为用户服务,不出现用户操作失败或者访问超时等用户体验不好的情况。

Partition Tolerance (分区容错性):

即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性或可用性的服务。

分区容错性要求能够使应用虽然是一个分布式系统,而看上去却好像是在一个可以运转正常的整体。比如现在的分布式系统中有某一个或者几个机器宕掉了,其他剩下的机器还能够正常运转满足系统需求,对于用户而言并没有什么体验上的影响。
https://blog.csdn.net/qq_34802511/article/details/81296510

在这里插入图片描述