【NOSql数据库笔记】 NOSQL,全称为Not Only SQL,意为“不仅仅是SQL”,是一种非关系型的数据库系统,旨在处理大规模数据分布式、集群环境下的存储和访问。NOSQL数据库通常以键值对、列存储、文档存储、图形数据库等形式存在,它们在可扩展性、容错性和性能方面有着显著优势。 1. **思想篇** - **CAP理论**:Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性),在分布式系统中,无法同时保证这三者,只能根据实际需求做出权衡。 - **最终一致性**:不是所有操作都立即达到一致状态,而是最终会达到一致,允许短暂的不一致。 - **BASE原则**:基本可用(Basically Available)、软状态(Soft State)、最终一致性(Eventual Consistency)。 - **I/O的五分钟法则**:数据在5分钟内必须写入,以保证数据的安全性。 - **Amdahl定律和Gustafson定律**:分别用于分析并行计算的性能改进限制和并行计算的优势。 2. **手段篇** - **一致性哈希**:解决分布式存储中数据分布均匀的问题,避免因节点增减导致大规模的数据迁移。 - **Quorum NRW**:读写策略,确保数据读写时的正确性。 - **Vector Clock**:用于处理分布式系统的版本冲突。 - **Gossip协议**:通过节点之间的消息传播来同步数据,分为状态转移模型和操作转移模型。 - **Merkle树**:用于高效地验证大量数据的完整性。 - **Paxos算法**:解决分布式一致性问题的算法,确保在部分网络故障下仍能达成共识。 3. **软件篇** - **Memcached**:内存键值存储系统,常用于缓存数据库查询,提高Web应用程序性能。 - **Hadoop HBase**:基于Hadoop的分布式列存储数据库,适用于大数据场景。 - **Cassandra**:Facebook开发的分布式数据库,支持高并发写入和低延迟读取。 - **BigTable**:Google的分布式表存储系统,用于大规模数据分析。 - **PNUTS**:Yahoo的分布式数据存储系统,支持大规模在线事务处理。 - **CouchDB**:JSON文档存储数据库,支持分布式和版本控制。 - **MongoDB**:流行的文档型数据库,适合处理半结构化数据。 - **SimpleDB**:Amazon提供的键值存储服务,用于云存储。 - **Dynamo**:Amazon的分布式键值存储系统,具有高可用性和可扩展性。 4. **应用篇** - **eBay、淘宝、Flickr和Twitter**等大型网站分享了他们的架构经验,包括缓存策略、运维管理和代码协同。 5. **反模式** - **单点失败**:系统的关键组件只有一份,故障会导致整个系统瘫痪。 - **同步调用**:阻塞式通信可能导致性能瓶颈。 - **不具备回滚能力**:系统更新后无法恢复到先前状态。 - **不记录日志**:缺乏日志使得故障排查困难。 - **无切分的数据库**:单个数据库无法处理大量数据。 - **无切分的应用**:应用规模过大,难以维护和扩展。 - **依赖第三方厂商**:过度依赖云服务商的伸缩性,降低系统自主性。 NOSQL数据库设计的核心原则包括假设失效是必然发生的,对数据进行分区,保存多个副本,动态伸缩以适应负载变化,使用Map/Reduce处理聚合,以及可以选择基于磁盘或内存的实现。NOSQL并非炒作,而是应对大数据和高并发场景的有效解决方案。
剩余63页未读,继续阅读
- 粉丝: 55
- 资源: 44
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- IP网络的仿真及实验.doc
- 学习路之uniapp-goEasy入门
- 多边形框架物体检测26-YOLO(v5至v11)、COCO数据集合集.rar
- 基于Python和OpenCV的人脸识别签到系统的开发与应用
- course_s2_ALINX_ZYNQ_MPSoC开发平台Vitis应用教程V1.01.pdf
- 基于51单片机开发板设计的六位密码锁
- course_s5_linux应用程序开发篇.pdf
- course_s4_ALINX_ZYNQ_MPSoC开发平台Linux驱动教程V1.04.pdf
- course_s0_Xilinx开发环境安装教程.pdf
- 多边形框架物体检测20-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar