策划 | Tina
通常,“NoSQL 数据库”是指非关系型数据库。不管它是“non SQL”的缩写,还是“not only SQL”的缩写,大多数人都同意,NoSQL 数据库是以关系表之外的格式存储数据的。
NoSQL 数据库之所以如此大受欢迎,是因为它们为用户提供了灵活的数据存储模式。
NoSQL 数据库性能优异、可扩展,而且很灵活,非常适合移动、Web 和游戏应用程序。
以下是一些知名的 NoSQL 数据库类型。
键值数据库成对存储数据,每个记录包含一个唯一 id 和一个值。这类数据库提供了灵活的存储结构,因为值中可以存储任意数量的非结构化数据。
会话管理、用户偏好设置和产品推荐。
Amazon DynamoDB、Azure Cosmos DB、Riak。
不同于基于磁盘的数据库,这类数据库的数据主要保存在内存中。通过减少磁盘访问实现最小响应时间。由于所有数据都存储在内存中,在进程或服务器出现故障时,内存数据库有丢失数据的风险。内存数据库可以通过在日志中记录每个操作或生成数据快照的方式将数据持久化到磁盘上。
Redis、Memcached、Amazon Elasticache。
文档数据的结构和键值数据库类似,只是键和值的形式是用标记语言(如 JSON、XML 或 YAML)编写的文档。
用户资料、产品目录和内容管理。
MongoDB、Amazon DocumentDB、CouchDB。
列式数据库基于表存储,但没有严格的列格式。列式数据库不要求每一列都有值,而且可以组合包含不同数据格式的行段和列段。
遥测数据、分析数据、消息传递和时序数据。
Cassandra、Accumulo、Azure Table Storage、HBase。
图数据库使用节点和边来映射数据之间的关系。节点是单个的数据值,边是这些值之间的关系。
社交图谱、推荐引擎和欺诈检测。
Neo4j、Amazon Neptune、Azure Cosmos DB Gremlin。
这类数据库存储有时间顺序的流式数据。数据不是按值或 id 排序,而是按收集、摄入时间或元数据中包含的其他时间戳排序。
工业遥测数据、DevOps 和物联网(IOT)应用程序。
Graphite、Prometheus、Amazon Timestream。
分类账数据库以日志为基础,日志中记录了与数据值相关的事件。这类数据库存储用于验证数据完整性的数据更改操作。
银行系统、注册、供应链、记录系统(systems of record)。
Amazon Quantum Ledger Database(QLDB)。
为了选出最合适自己的 NoSQL 数据库,你应该了解各种 NoSQL 数据库之间的差异。
原文链接:
https://levelup.gitconnected.com/system-design-interviews-nosql-databases-and-when-to-use-them-780021f4063
声明:本文为 InfoQ 翻译,未经许可禁止转载。
浅析 SeaweedFS 与 JuiceFS 架构异同
再见 Sidecar:eBPF 能抢过 Istio 服务网格的风头吗?
“开发和运维”DevOps只是一个开始,最终目标是质量工程
虚拟线程:大规模Java应用的新基石