NoSQL 简介

NoSQL 简介

NoSQL(Not Only SQL,非关系型数据库)是一类不使用传统关系模型(RDBMS)的数据库系统,专为现代大规模、高并发、灵活数据结构的应用场景设计。


一、NoSQL 诞生背景

问题传统 RDBMS 局限性NoSQL 解决方案
数据结构复杂多变固定 Schema,修改成本高动态 Schema,灵活存储
超大规模数据垂直扩展成本高水平扩展(分布式)
高并发读写锁机制影响性能无锁/最终一致性
半结构化/非结构化数据存储困难原生支持 JSON、日志、图等

二、NoSQL 四大类型(CAP 分类)

类型代表数据库核心特点适用场景
键值(Key-Value)Redis、DynamoDB类似 HashMap,O(1) 读写缓存、会话、排行榜
文档(Document)MongoDB、CouchDBJSON/BSON 文档,Schema 灵活CMS、电商商品、用户配置
列族(Column-Family)Cassandra、HBase按列存储,适合写多读少日志、时序数据、监控
图(Graph)Neo4j、JanusGraph节点+关系,遍历快社交网络、推荐、欺诈检测

三、NoSQL 核心特性(BASE vs ACID)

特性说明
BASEBasically Available(基本可用)
Soft state(软状态)
Eventual consistency(最终一致性)
对比 ACID放弃强一致性,换取高可用和高性能
CAP 定理Consistency(一致性)
Availability(可用性)
Partition tolerance(分区容忍性)
三者不可兼得

NoSQL 通常选择 APCP,而传统 RDBMS 追求 CA


四、NoSQL 优势总结

优势说明
高性能内存操作、索引优化、无锁设计
水平扩展分片(Sharding)+ 复制,轻松扩展到千台服务器
灵活数据模型支持 JSON、嵌套、数组,无需迁移
高可用自动故障转移、多副本、跨数据中心
云原生天然适配微服务、Serverless、容器

五、NoSQL vs SQL 对比

维度SQL(RDBMS)NoSQL
数据模型表 + 行 + 列,固定 Schema文档/键值/列/图,动态 Schema
事务ACID 完整支持部分支持(MongoDB 4.0+)或最终一致性
查询SQL 标准,JOIN 强大专用查询语言(如 MongoDB Query、CQL)
扩展性垂直扩展(更大机器)水平扩展(更多机器)
一致性强一致性最终一致性(可配置)

六、典型应用场景

场景推荐 NoSQL 类型
网站会话、购物车Redis(Key-Value)
文章、商品目录MongoDB(Document)
用户行为日志Cassandra / HBase(Column)
好友关系、推荐路径Neo4j(Graph)
实时排行榜Redis Sorted Set
物联网时序数据InfluxDB / MongoDB Time Series

七、主流 NoSQL 数据库(2025)

数据库类型明星特性
MongoDB文档开发者友好、聚合管道、Atlas 云服务
Redis键值内存数据库、Pub/Sub、Lua 脚本
Cassandra列族线性扩展、去中心化、高写入
Neo4jCypher 查询语言、图算法
DynamoDB键值/文档AWS 无服务器、按需计费
Couchbase文档N1QL 查询、移动同步

八、常见误区

误区澄清
“NoSQL = 无 Schema”不是无结构,而是动态 Schema
“NoSQL 不支持事务”现代 NoSQL(如 MongoDB、Couchbase)支持多文档事务
“NoSQL 完全替代 SQL”两者互补:SQL 管结构化核心数据,NoSQL 管灵活/高并发数据

九、总结:一句话定义 NoSQL

NoSQL 是为“大规模、灵活性、高性能”而生的分布式非关系型数据库体系。


学习建议

  1. 先学 MongoDB(最易上手)
  2. 再学 Redis(缓存必备)
  3. 进阶 Cassandra / Neo4j(特定场景)

如需 NoSQL 选型对比表MongoDB vs Redis 实战对比,可继续提问!

文章已创建 2349

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部