NoSQL 分为四大类:键值数据库、文档数据库、列族数据库、图数据库,下面是业界广泛使用、生产落地多的产品,附带适用场景、优缺点。
1. 文档数据库(Document DB)
数据以 JSON/BSON 文档存储,结构灵活,最常用。
MongoDB
特点:最流行文档数据库,BSON 存储,支持二级索引、聚合查询、副本集、分片集群;社区版免费,有云服务 MongoDB Atlas。
适用:内容管理、用户画像、电商商品、小程序 / APP 后端、半结构化数据。
缺点:事务能力有限(4.0 后支持多文档事务),大数据量下分片运维复杂度高。
CouchDB
特点:Apache 开源,JSON 文档,MVCC 多版本,强大同步复制,适合离线多端同步。
适用:移动端、边缘设备、离线优先应用。
2. 键‑值数据库(Key‑Value)
根据 key 快速读取 value,性能极高。
Redis
内存型 KV,几乎互联网必备
特点:内存为主,支持持久化;支持 String、Hash、List、Set、ZSet 多种数据结构;主从、哨兵、集群;可做缓存、消息队列、计数器、分布式锁。
适用:热点缓存、会话存储、限流、排行榜。
注意:内存成本高,不适合海量冷数据持久存储。
RocksDB
特点:Facebook 开源,磁盘 KV,LSM‑Tree,嵌入式,无独立服务进程。
适用:作为存储引擎被很多组件使用(Elasticsearch、TiDB、Flink),适合本地高性能持久 KV。
LevelDB
Google 开源,轻量嵌入式 LSM‑Tree KV,多用于嵌入式、边缘场景。
3. 列族数据库(宽列存储 Column‑Family)
按列簇存储,适合海量结构化、时序数据,高写入吞吐。
Apache Cassandra
特点:去中心化分布式,无主节点,高可用,线性扩展,写入性能极强。
适用:时序数据、IoT 设备上报、日志、传感器数据,可容忍部分查询不灵活。
HBase(Apache)
特点:Hadoop 生态,分布式宽列存储,基于 HDFS,强一致性,海量 PB 级数据。
适用:大数据平台、历史海量业务数据存储,与 Flink/Spark 配合;运维重,依赖 Hadoop 组件。
4. 图数据库(Graph DB)
存储实体与关系(节点 + 边),专门处理关联查询。
Neo4j
特点:最知名图数据库,Cypher 查询语言;社区版单机,企业版集群。
适用:社交关系、知识图谱、风控链路、推荐、路径分析。
NebulaGraph
国产开源分布式图数据库,国内大厂广泛使用,性能优于 Neo4j 集群,支持水平扩展。
适用:大规模知识图谱、金融风控、社交网络。
Apache JanusGraph
开源分布式图,可对接 Cassandra/HBase 做底层存储,适合超大规模图。
5. 搜索引擎(常归类 NoSQL)
Elasticsearch
特点:基于 Lucene,全文检索,倒排索引,支持聚合、模糊查询;底层使用 RocksDB。
适用:日志检索、站内搜索、APP 搜索、日志分析。
6. 时序数据库(TSDB,NoSQL 分支)
专门处理时间序列指标
InfluxDB
时序标杆,写入指标点,语法简单,适合监控、IoT。
Prometheus
云原生监控时序库,多用于 K8s 监控。
TDengine
国产开源时序数据库,高性能,压缩比高,IoT、工业监控场景。
选型速查表
简单选型建议
需要缓存、计数器:Redis
数据结构多变,不想严格定义表结构:MongoDB
需要全文检索:Elasticsearch
大量设备上报、海量写入:Cassandra / TDengine
重点关注实体之间关系:NebulaGraph / Neo4j
大数据生态,Hadoop 体系:HBase
本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。
原文链接
欢迎访问 小易撩挨踢