NoSql数据库
NoSql四大分类
KV键值 Redis
文档型数据库(bson格式比较多)MongoDB
列表存储数据库 HBase
图关系数据库
在分布式数据库中CAP原理CAP+BASE
传统的ACID分别是什么
A(Atomicity)原子性
事务里的所有操作要么全做完,要么都不做
C(Consistency)一致性
数据库要一直处于一致,事物的运行不会改变数据库原本的一致
I(Isolation)独立性
事物的并发不会互相影响,比如A给B转100元,在还没确定之前,B去查询账户不会查到多了100元
D(Durability)持久性
一旦失误提交之后,他的所做的修改会永久保留在数据库上,绝不会丢失
CAP原理
C:Consistency(强一致性)
A:Availability(可用性)
P:Partition tolerance(分区容错性)
CAP中只能满足上述三个中的二个
CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强(RDBMS,传统的Oracle数据库)
CP - 满足一致性,分区容错的系统,通常性能不是特别高(MongoDB,HBase,Redis)
AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些(CouchDB,大多数网站架构的选择)
CAP+BASE
BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案
BASE其实是下面三个术语的缩写
基本可用(Basically Available)
软状态(Soft state)
最终一致(Eventually consistent)
鸭的思想就是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观
分布式集群
分布式:不同的多台服务器上面部署不同的服务模块(工程),他们之间通过Rpc/Rmi之间通信和调用,对外提供服务和组内协作
集群:不同的多台服务器上面部署相同的服务模块,通过分布式调度软件进行统一的调度,对外提供服务和访问