盘点当前主流5类的NoSQL,附示例代码
文章目录
1. 键值对存储
Redis (键值对存储)
2. 文档存储
MongoDB (文档存储)
3. 列族存储
Cassandra (列族存储)
4. 图数据库
Neo4j (图数据库)
5. 时间序列数据库
InfluxDB (时间序列数据库)
NoSQL(Not Only SQL)数据库是指一种非关系型、分布式的数据存储,它不同于传统的基于表的关系型数据库管理系统(RDBMS)。NoSQL数据库被设计用来处理大规模数据存储,并且提供更灵活的数据模型。以下是几种常见的NoSQL数据库类型及其代表性的实现:
1. 键值对存储
键值对数据库是最简单的NoSQL数据库形式,它们使用一个哈希表,这个表包含唯一的键和指向数据的指针。
Redis:除了作为缓存工具外,Redis还支持持久化到磁盘,具有丰富的数据类型如字符串、列表、集合等,适合用于会话管理、实时分析等领域。
Riak:提供高可用性和容错能力,适用于需要跨多个数据中心同步数据的应用场景。
DynamoDB (Amazon):亚马逊提供的全托管式NoSQL数据库服务,具备自动扩展和内置备份恢复功能,非常适合互联网应用和服务。
Redis (键值对存储)
# 创建/更新 (SET)
redis-cli SET key1 "value1"
# 读取 (GET)
redis-cli GET key1
# 更新 (通过重新SET实现)
redis-cli SET key1 "newValue1"
# 删除 (DEL)
redis-cli DEL key1
2. 文档存储
文档型数据库将数据存储为文档格式(通常是JSON/BSON),每个文档可以有不同的结构,因此非常灵活。
MongoDB:最流行的文档型数据库之一,支持复杂的查询操作、全文搜索以及地理空间索引等功能。广泛应用于内容管理系统、日志分析等。
CouchDB:强调数据同步特性,允许客户端离线工作并在重新连接后同步更新。非常适合移动应用程序开发。
ArangoDB:不仅支持文档模型,还集成了图数据库功能,提供了多模态的数据处理能力。
MongoDB (文档存储)
# 启动MongoDB shell
mongo
# 使用或创建一个数据库
use mydb
# 创建 (insertOne)
db.collection.insertOne({
name: "Alice", age: 30