Redis-分布式数据库CAP原理
一,传统关系型数据库的ACID分别是什么?
- A:原子性
- C:一致性
- I:独立性
- D:持久性
二,传统非关系型数据库CAP原理分别是什么?(只能三选二)
- C:强一致性
- A:可用性
- P:分区容错性
- CAP理论核心?
- 一个分布式系统不可能同时很好的满足一致性,可用性和容错性这三个需求,最多只能同时较好的满足2个,
- CAP三大类原则:
- CA:单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大,用于传统Oracle数据库;
- CP:满足一致性,分区容忍性的系统,通常性能不是特别高,适用于Redis,Mongodb;
- AP:满足可用性,分区容错性的系统,通常可能对一致性要求低些,应用于大多网站架构的选择。
- 注意:分布式系统肯定必须满足分区容错性P。
三,BASE
- 什么是BASE?
- BASE是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决问题
- BASE的含义?
- 基本可用
- 软状态
- 最终一致
- 对BASE的理解?
- 通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观。原因在于大型系统由于地域分布和极高性能的要求,不可能采用分布式事务来完成这些指标,要想获得这些指标,必须采用另外一种方式完成,用BASE就可以解决。像京东,淘宝用的可能就是这种CAP+BASE方案来实现数据一致性和系统的高可用。
四,分布式和集群
- 分布式:不同的多台服务器上面部署不同的服务模块,他们之间通过Rpc/Rmi之间通信和调用,对外部提供服务和组内协作。
- 集群:不同多台服务器上面部署相同服务模块,通过分布式调度软件进行统一的调度,对外提供服务和访问。