非关系型数据库服务
非关系型数据库是为了应对高并发、海量数据和非结构化数据存储而产生的数据库体系。它们突破了关系数据库的 ACID 限制,以 CAP 定理为指导,在一致性、可用性和分区容错性之间做出不同的权衡。
内容概览
本章节从实现者的角度深入剖析各类 NoSQL 数据库的底层原理,内容包括:
- Redis 实现:单线程模型、数据结构实现、RDB/AOF 持久化、主从复制、集群架构
- MongoDB 实现:文档模型、WiredTiger 存储引擎、复制集、分片集群、聚合管道
- Elasticsearch 实现:倒排索引、FST 压缩、分片架构、分布式协调、查询处理
- Neo4j 实现:标签属性图、存储引擎、Schema 索引、Cypher 查询语言
- Milvus 实现:向量检索基础、IVF/HNSW 索引、存算分离架构
- 消息队列实现:Kafka 存储机制、RabbitMQ 交换机、可靠性保证、消费语义
数据库分类
| 类型 | 代表产品 | 特点 | 适用场景 |
|---|---|---|---|
| 键值存储 | Redis | 高性能、简单结构 | 缓存、会话存储 |
| 文档存储 | MongoDB | 灵活 Schema、嵌套文档 | 内容管理、产品目录 |
| 搜索引擎 | Elasticsearch | 全文检索、复杂查询 | 日志分析、站内搜索 |
| 图数据库 | Neo4j | 关系遍历、图算法 | 社交网络、知识图谱 |
| 向量数据库 | Milvus | 相似度搜索、高维索引 | 图像检索、推荐系统 |
| 消息队列 | Kafka/RabbitMQ | 异步处理、解耦 | 日志收集、事件驱动 |
学习路径
建议按照以下顺序学习:
- 先理解 NoSQL 与关系数据库的区别和权衡
- 学习 Redis 的内存数据结构和持久化机制
- 深入 MongoDB 的文档模型和分片架构
- 掌握 Elasticsearch 的倒排索引和分布式协调
- 了解图数据库和向量数据库的专用场景
- 研究消息队列的可靠性和消费语义