非关系型数据库Nosql
分类
键值存储 (Key-Value Store):
- 代表: Redis, DynamoDB, RocksDB, etcd
- 核心优势: 极致简单、超高读写性能(尤其内存型)、高吞吐。
- 场景: 缓存、会话存储、配置、计数器、分布式协调、简单消息队列。
列式 / 宽列存储 (Wide-Column / Column-Family Store):
- 代表: HBase, Cassandra, ScyllaDB
- 核心优势: 极高的可扩展性、适合海量稀疏数据、按列族高效读写(尤其写吞吐)、良好的分区能力。
- 场景: 大规模时序数据(IoT, 监控)、消息/事件流存储、用户画像属性存储、内容元数据。
文档数据库 (Document Database):
- 代表: MongoDB, Couchbase, CouchDB
- 核心优势: 灵活的文档模型(Schema-flexible)、支持嵌套数据结构、开发自然(映射对象)、横向扩展。
- 场景: 内容管理(CMS)、产品目录、用户配置/档案、评论/博客、实时分析(部分)、复杂对象存储。
搜索引擎 (Search Engine):
- 代表: Elasticsearch, Solr, OpenSearch
- 核心优势: 强大的全文检索、复杂相关性排序、模糊查询、聚合分析能力、分布式搜索。
- 场景: 应用/产品内搜索、日志分析(ELK)、应用性能监控(APM)、安全信息与事件管理(SIEM)、商业智能探索。
图数据库 (Graph Database): (补充项)
- 代表: Neo4j, Amazon Neptune, JanusGraph
- 核心优势: 高效存储和处理实体间复杂关系、擅长深度关联查询(路径、社区、模式匹配)。
- 场景: 社交网络、欺诈检测、知识图谱、推荐引擎、网络/IT基础设施管理。
📌 重要提示
- 界限模糊: 很多现代数据库是多模型的。例如:
- Redis不仅仅是简单的字符串KV,它支持多种数据结构。
- DynamoDB核心是KV,但文档是其主要支持的数据格式。
- ArangoDB自称是原生多模型数据库(支持文档、图、KV)。
- Elasticsearch底层是文档存储,但功能聚焦在搜索。
- Cassandra常被归为宽列存储,但其数据模型和查询方式与HBase有差异。
- 选择依据: 最终选择哪个数据库(甚至组合使用多个)取决于应用的具体需求(数据模型、访问模式、一致性要求、规模、延迟、成本等),而不是简单地套用分类。
- 时序数据库 (Time-Series Database - TSDB): 这是一个越来越重要的细分领域(如 InfluxDB, TimescaleDB, Prometheus)。虽然其底层存储引擎可能基于KV、列式或LSM-Tree,但其高度优化的时间序列数据处理能力(时间窗口聚合、降采样、高效处理时间戳索引) 使它值得单独关注。你可以把它看作是基于特定场景优化的KV或列式数据库的一个高度特化子集。如果你的场景主要是处理带时间戳的指标或事件,时序数据库通常是更优的选择。