跳到主要内容

NoSQL 数据库

NoSQL 是对多类非关系型数据库的统称。本页用于认识常见存储模型和选择条件,本站已展开的专题是 Redis。

1. 关系型数据库的性能瓶颈​

关系型数据库通过表、约束和事务组织数据。高并发下的瓶颈可能来自扫描过多记录、锁竞争、磁盘 I/O 或跨节点协调,需要先定位具体原因。

NoSQL 产品提供键值、文档、列族或图等数据模型,适合不同的访问方式。例如,按键读取一个缓存对象,可以使用 Redis;需要频繁关联多张业务表并维护事务约束时,应先评估关系型数据库是否已经满足要求。

存储模型与事务保证是两个维度。不能把所有 NoSQL 产品都归为 BASE,也不能据此认定它们一定比关系型数据库快。MongoDB 支持多文档 ACID 事务;Redis 的事务则有自己的执行和错误处理规则。选择时需要分别核对原子性、持久化、复制和故障恢复条件。

2. NoSQL 数据库的种类​

NoSQL 数据库的种类繁多,包括:

  • 键值对数据库: Redis,Memcached
  • 文档数据库: MongoDB
  • 列族数据库: HBase
  • 图数据库: Neo4j

上面的产品用于说明分类,不表示本站已提供全部产品的教程。复习后端面试时,可从 Redis开始,再阅读 Redis 持久化、复制与集群和 Redis 数据结构,解释缓存为什么快,以及故障时哪些数据可能丢失。

3. 参考资料​

来源:Coding 101 原文 · 免费阅读,引用请保留出处。内容使用说明