NoSQL数据库深入探索与软件实践

需积分: 9 1 下载量 195 浏览量 更新于2024-07-19 收藏 2.82MB PDF 举报
"nosql 笔记" 这篇笔记主要探讨了NoSQL数据库的相关概念、思想、技术手段以及具体的软件实现。NoSQL(Not Only SQL)是一种非关系型的数据库技术,通常用于处理大规模分布式数据存储。 1. 思想篇: - CAP定理:在分布式系统中,无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)。通常,系统需要在这三者之间做出权衡。 - 最终一致性:在分布式系统中,数据经过一段时间后会达到所有节点的一致状态,但不保证即时一致性。 - BASE原则:基本可用(Basically Available)、软状态(Soft State)、最终一致性(Eventually Consistent),这是对CAP定理的一种妥协方案。 - I/O的五分钟法则:强调快速响应对于系统的重要性,通常要求在5分钟内完成I/O操作。 - Amdahl定律:计算系统的最大加速比受到单个组件性能的影响。 - Gustafson定律:指出并行计算的性能提升潜力不仅仅取决于原始问题的规模,还取决于并行化程度。 2. 手段篇: - 一致性哈希:解决分布式系统中数据分布和负载均衡的问题。 - QuorumNRW:在分布式存储中,决定读写操作的最小副本数量,确保数据一致性。 - Vectorclock:用于解决分布式系统中的时序问题,记录每个节点的操作顺序。 - Virtualnode:虚拟节点技术,通过增加哈希空间来提高一致性哈希的负载均衡。 - Gossip协议:用于分布式系统中的信息传播,分为状态转移模型和操作转移模型。 - Merkletree:默克尔树,常用于区块链和分布式系统中验证数据完整性的数据结构。 - Paxos:一种用于达成分布式一致性的重要算法,确保在网络通信不可靠的情况下也能正确处理事务。 3. 软件篇: - 亚数据库:包括Memcached等内存键值存储系统,用于快速缓存和数据访问。 - Memcached:特点是轻量级、高性能,广泛应用于Web应用缓存。 - Hadoop之Hbase:基于Hadoop的分布式列存数据库,适用于大规模数据分析。 - Yahoo之PNUTS:面向大规模在线事务处理的分布式系统,采用记录级别主节点设计。 - Facebook之Cassandra:分布式NoSQL数据库,支持高可扩展性和容错性。 - Google之BigTable:Google内部使用的分布式表存储系统,启发了许多NoSQL数据库的设计。 - CouchDB、Riak、MongoDB、Terrastore和ThruDB:这些是文档存储数据库,提供了灵活的数据模型和高可用性。 这篇笔记详细介绍了NoSQL数据库的核心理念和技术实现,对于理解非关系型数据库的运作机制以及如何选择合适的NoSQL解决方案具有很高的参考价值。