# 🧠 数据库与缓存系统全览

URL: https://caijiao.org/posts/26
Source: docs/posts/26.md
Description: 本文全面介绍主流数据库与缓存系统，包括关系型数据库（MySQL、PostgreSQL、SQLite）、NoSQL 数据库（MongoDB、Cassandra、Redis）、搜索引擎（Elasticsearch、Solr）、时序数据库（InfluxDB、Prometheus）等，涵盖各自特点与应用场景。

现代应用系统中，**数据库与缓存** 是数据存储、访问和分析的核心组成部分。不同类型的数据库针对不同场景优化，例如：事务型数据、文档存储、实时搜索、时序分析或图关系查询。本篇将全面介绍主流的数据库与缓存解决方案。

## 🧩 一、关系型数据库（RDBMS）

| 名称 | 简介 |
|------|------|
| **MySQL** | 全球最流行的开源关系型数据库，Web 应用首选之一。 |
| **[MariaDB](/mariadb/)** | MySQL 的社区分支，性能更优、兼容性高。 |
| **[PostgreSQL](/postgresql/)** | 功能强大、支持复杂查询、事务与扩展性强的开源数据库。 |
| **[SQLite](/sqlite/)** | 轻量嵌入式数据库，常用于移动和桌面端。 |
| **Oracle Database** | 商业级数据库巨头，企业关键业务首选。 |
| **Microsoft SQL Server** | 微软出品的企业数据库，深度集成 Windows 生态。 |
| **IBM Db2** | IBM 的高性能企业级关系数据库。 |
| **TiDB** | 分布式 NewSQL 数据库，兼容 MySQL 协议，支持水平扩展。 |
| **CockroachDB** | 云原生分布式 SQL 数据库，强调高可用与自动容错。 |

## 🌿 二、NoSQL 数据库

| 名称 | 类型 | 简介 |
|------|------|------|
| **[MongoDB](/mongodb/)** | 文档型 | 使用 BSON 存储 JSON 文档，灵活易扩展。 |
| **CouchDB** | 文档型 | 使用 HTTP/JSON 接口，支持多主复制。 |
| **Cassandra** | 列式 | 高可扩展分布式数据库，被 Netflix、Instagram 使用。 |
| **HBase** | 列式 | Hadoop 生态中的分布式列族数据库。 |
| **DynamoDB** | 键值型 | AWS 提供的云原生 NoSQL 服务。 |
| **Riak KV** | 键值型 | 高可用、容错的分布式键值数据库。 |
| **Neo4j** | 图数据库 | 用于图关系存储与图算法分析。 |
| **ArangoDB** | 多模型 | 同时支持文档、图、键值三种模型。 |
| **OrientDB** | 多模型 | 融合文档与图的 NoSQL 数据库。 |

## ⚡ 三、缓存与内存存储

| 名称 | 简介 |
|------|------|
| **[Redis](/redis/)** | 高性能键值存储，支持持久化、发布订阅、事务、Lua 脚本。 |
| **[Memcached](/memcached/)** | 轻量级分布式内存缓存系统。 |
| **Hazelcast** | 分布式内存计算与缓存框架，支持 Java 集群。 |
| **Ehcache** | Java 应用常用本地缓存，常与 Spring 集成。 |
| **Aerospike** | 高性能分布式键值数据库，常用于实时推荐系统。 |
| **Tarantool** | 内存数据库与应用服务器的结合体。 |

## 🔍 四、搜索与分析引擎

| 名称 | 简介 |
|------|------|
| **[Elasticsearch](/elasticsearch/)** | 分布式搜索与分析引擎，基于 Lucene。 |
| **Apache Solr** | 与 Elasticsearch 类似的企业级搜索平台。 |
| **OpenSearch** | Elasticsearch 的开源分支，由 AWS 维护。 |
| **ClickHouse** | 高性能列式分析数据库，适合实时 OLAP 查询。 |
| **Druid** | 实时数据分析数据库，常用于时序与 BI 场景。 |
| **Rockset** | 云原生实时分析数据库，可直接查询 JSON、S3 数据等。 |

## ⏱️ 五、时序与监控数据库（Time-Series DB）

| 名称 | 简介 |
|------|------|
| **InfluxDB** | 专为时序数据（监控、IoT）设计。 |
| **Prometheus** | 监控与指标存储系统，Kubernetes 标配。 |
| **TimescaleDB** | 基于 PostgreSQL 的时序数据库扩展。 |
| **VictoriaMetrics** | 高性能 Prometheus 兼容时序数据库。 |

## 🌐 六、图数据库（Graph DB）

| 名称 | 简介 |
|------|------|
| **Neo4j** | 最流行的图数据库，用于社交、推荐、知识图谱。 |
| **JanusGraph** | 分布式图数据库，支持多种后端（Cassandra、HBase）。 |
| **TigerGraph** | 面向企业级图计算分析，支持复杂关系查询。 |

## ☁️ 七、云原生与新兴数据库

| 名称 | 简介 |
|------|------|
| **PlanetScale** | 基于 Vitess 的分布式 MySQL 云数据库。 |
| **YugabyteDB** | 高兼容 PostgreSQL 的分布式数据库。 |
| **FaunaDB** | 无服务器的分布式数据库，支持 GraphQL。 |
| **SurrealDB** | 多模型数据库，支持 SQL + JSON + Graph。 |
| **QuestDB** | 极快的时序数据库，支持 SQL 查询接口。 |

## 📚 总结

| 类型 | 典型代表 | 特点 |
|------|-----------|------|
| 关系型数据库 | MySQL、PostgreSQL | 事务一致性、结构化数据、成熟生态 |
| NoSQL 数据库 | MongoDB、Cassandra | 灵活、可扩展、无固定模式 |
| 缓存系统 | Redis、Memcached | 高速访问、减轻数据库压力 |
| 搜索与分析 | Elasticsearch、ClickHouse | 支持全文搜索、聚合分析 |
| 时序数据库 | InfluxDB、Prometheus | 优化时间序列数据写入与查询 |
| 图数据库 | Neo4j、JanusGraph | 关系网络、路径分析、高度连接性 |
| 云原生数据库 | TiDB、PlanetScale | 分布式架构、云原生高可用设计 |


>
> - Web 系统通常会搭配多种数据库：例如使用 PostgreSQL 存储业务数据、Redis 作为缓存、Elasticsearch 提供搜索功能。  
> - 数据库选择应基于业务场景、数据结构、性能需求与运维能力综合考虑。
