传统数据库与Nosql
nosql的聚合模型:K-v,Bson,列族,图形
- k-v:redis
- 文档型数据库:MonDB
- 列存储数据库:HBase,分部署文件系统
- 图关系数据库:社交网络,推荐系统
数据库的事务管理:ACID
- A:原子性(Atomicity)
- C:一致性(Consistency)
- I:独立性(Isolation)
- D:持久性(Darability)
分布式系统的三大特性:
- (Consistency)强一致性:保持数据的同步更新,即发布一条信息,同时用户也能马上看到发布的消息
- (Availability)可用性:在多并发情形下,让用户能正常使用软件,系统不会崩溃
- (Partition tolerance)分区容错性:在多个地区的用户请求下,保持每个地区的访问时对应的当下地区的服务器,
但是在Nosql的分布式系统下最多只能满足其中两个,其中分区容错性必须要实现——AP
大多数网站实现:可用性+分区容错性,对于实时性的要求不算高
BASE:为了解决关系型数据库强一致性引起的问题而引起的可用性降低提出的解决方案
- 基本可用(Basically Available)
- 软状态(Soft State)
- 最终一致(Eventually consistent)
分布式与集群的区别 - 分布式:不同服务器上部署不同的工程,通过Rpc远程通信
- 集群:不同服务器上部署相同服务模块,通过分部署调用统一管理
Redis介绍(远程字典服务器):使用C语言编写,存储于内存中 - 支持持久化。内存中的数据可以同步到磁盘中,重启的时候可以再次加载使用
- 存储格式:K-V,list,Set,Hash,Zset
- 支持数据的备份。即master-slave(主从复制)的数据备份
- 可以配置,持久化和复制,RDB/AOF,事务的控制,复制