简介:本文全面梳理NoSQL数据库期末考试的核心知识点,涵盖数据模型、CAP理论、主流数据库类型及操作实践,助力考生系统掌握理论与应用技巧。
NoSQL(Not Only SQL)数据库是为应对海量数据、高并发和灵活数据模型需求而生的非关系型数据库。其核心特征包括:
示例:电商场景中,订单数据需强一致性(C),而用户行为日志可接受最终一致性(Eventual Consistency)。
NoSQL数据库按数据模型分为四大类:
# Redis 示例:存储用户会话import redisr = redis.Redis(host='localhost', port=6379)r.set('user:1001', '{"name":"Alice","cart":["item1","item2"]}')
// MongoDB 插入文档db.users.insertOne({name: "Bob",age: 30,address: { city: "New York", zip: "10001" }});
-- HBase 插入数据put 'user_table', 'row1', 'info:name', 'Charlie'put 'user_table', 'row1', 'info:age', '25'
// Neo4j 创建关系MATCH (a:User {name: "David"}), (b:User {name: "Eve"})CREATE (a)-[r:FRIEND]->(b)
权衡策略:
BASE是对CAP的补充,强调最终一致性:
应用场景:分布式缓存(如Redis Cluster)通过异步复制实现高可用,同时允许短暂数据不一致。
| 数据库类型 | 代表产品 | 优势场景 | 劣势 |
|---|---|---|---|
| 键值存储 | Redis | 高频读写、低延迟 | 缺乏复杂查询支持 |
| 文档存储 | MongoDB | 灵活模式、快速开发 | 事务支持较弱 |
| 列族存储 | Cassandra | 高写入吞吐、线性扩展 | 查询语言复杂 |
| 图数据库 | Neo4j | 关系分析、路径查询 | 大规模数据性能下降 |
选型建议:
// 创建复合索引db.orders.createIndex({ customerId: 1, date: -1 });
session = db.getMongo().startSession();session.startTransaction();try {db.accounts.updateOne({ _id: 1 }, { $inc: { balance: -100 } }, { session });db.accounts.updateOne({ _id: 2 }, { $inc: { balance: 100 } }, { session });session.commitTransaction();} catch (error) {session.abortTransaction();}
备考建议:
本文系统梳理了NoSQL数据库的核心知识点,从基础理论到实战技巧,为期末考试提供全面指导。掌握这些内容后,考生不仅能应对理论考试,更能在实际项目中灵活应用NoSQL技术。