第2章 门派总览:五大门派速写


第2章 门派总览:五大门派速写

本章要回答的三个问题:NoSQL 内部有哪些流派,划分依据是什么?每一派的代表产品各自为什么而生?面对一个具体需求,第一直觉应该把哪个门派请进候选名单?

为什么会有这一章

第 1 章把 NoSQL 当作一个整体与关系型对比,但真实世界没有"一个 NoSQL",只有五种数据模型哲学、几十个具体产品。不先建立门派版图就直接跳进 MongoDB 或 Redis 的命令手册,学到的知识会是散点:你知道怎么用,但不知道为什么用它,更不知道什么时候不该用它。

本章采用巡礼的方式组织:把 NoSQL 世界按数据模型划成五大门派——键值、文档、列族、图,外加由时序、搜索、向量构成的新兴门派。每一节登门拜访一派,按同样的四段结构展开:历史动因(它为什么在那个年代出现)、数据模型(数据以什么形状存放)、代表产品(市面上选谁)、实战取舍(什么场景请它,什么场景别请)。四段结构在五节间保持一致,方便你横向比较。

读完能解决什么

读完本章,你应当能够:拿到一个存储需求,先问三个问题(访问模式是什么、查询模式是否稳定、规模量级多大),然后独立给出候选门派与两个备选;能说出每个门派至少一个代表产品的定位与一例典型误用;并且理解本章的速写如何被第 3 章的通用内功与第 4、5 章的深访所承接。

各节怎么分工

节号 回答哪个问题 关键产出
2.1 键值门派凭什么立足 字典哲学 + 三大代表产品对比
2.2 文档门派适合什么 文档模型 + 嵌入与引用的抉择
2.3 列族门派为谁而生 宽表模型 + 查询优先建模
2.4 图门派何时不可替代 关系遍历 + 无索引邻接
2.5 新兴门派解决什么 时序、搜索、向量各自的本命场景

各节按"模型由简到繁"排列:键值最简,文档在其上加了内部结构,列族把维度铺开,图彻底改变数据的组织方式,新兴门派则按数据的时间或语义维度特化。这个顺序也是选型时的思考顺序——从最简单的模型试起,复杂度只在必要时引入。

先决条件

读完第 1 章即可。特别需要带着 1.3 节的六维对比表和 1.4 节的"特点 × 代价"框架进入本章——每个门派的取舍分析都会调用它们。

五派速查总表

把五派并排放在一起,是建立地图最快的方式。下表按"你要解决的问题"反向索引门派,查表比背概念管用。

门派 数据模型 代表产品 擅长 不擅长 何时选它
键值 键 → 不透明值 Redis、Memcached、etcd 按主键极速读写、计数器、会话 按内容查询、复杂统计 缓存、限流、分布式锁、会话
文档 结构化文档(JSON/BSON) MongoDB、Couchbase 结构常变、聚合体一次读完 多跳关联、跨文档强一致 内容、目录、设备档案、订单聚合
列族 行键 → 列族 → 列 Cassandra、HBase、Bigtable 海量写入、按行键范围扫描 即席查询、二级索引能力弱 消息、日志、物联网写入、宽表
图 点 + 边 + 属性 Neo4j、NebulaGraph、JanusGraph 多跳关系遍历、路径与社群 批量扫描、账务事务 社交、风控团伙、知识图谱、拓扑
时序/搜索/向量 时间序 / 倒排 / 高维向量 见 2.5 单一负载做到极致 通用能力 监控指标、全文检索、语义相似检索

读这一章的正确姿势

不要试图一次记住所有细节。 这一章的目标是建立坐标感——知道每派解决什么问题、边界在哪。真正的机制细节在第 4、5 章以 MongoDB 与 Redis 为样本展开,届时回头对照 2.1 与 2.2 的速写,理解会深一层。

特别留意"不擅长"这一列。 选型失败的绝大多数案例,不是因为不了解产品的优点,而是因为没认真读过它的缺点。评审会上花在"它不擅长什么"上的时间,应该不少于花在"它能做什么"上的时间。

记住一条通用规律:越是针对性优化的产品,通用能力越弱;越是通用的产品,单一负载下的效率越低。选型就是在这个光谱上找位置,没有两头都占的便宜。

往下走到哪

本章的速写刻意保持在一万英尺高度,具体产品的命令与机制全部留给后面:文档门派将在第 4 章以 MongoDB 为样本深访八节,键值门派将在第 5 章以 Redis 为样本深访八节,列族与图门派的通用内功(一致性、建模、扩展)则在第 3 章统一修炼。读本章时不必死记命令,记住每派"为什么长成那样"即可。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U