暗黑模式
后端技术数据库MongoDB & Redis指南
MongoDB
1. 介绍
MongoDB 是一个面向文档的 NoSQL 数据库,使用 BSON(类似 JSON 的格式)来存储数据。
2. 安装与配置
MongoDB 支持多种平台,可以通过包管理器或官方网站下载。
bash
sudo apt-get install mongodb
3. 数据模型
MongoDB 使用集合(Collections)和文档(Documents)而非传统的表和行。
4. CRUD 操作
基本的创建、读取、更新、删除操作。
javascript
db.collection.insertOne({key: "value"});
db.collection.find({key: "value"});
db.collection.updateOne({key: "value"}, {$set: {key2: "value2"}});
db.collection.deleteOne({key: "value"});
5. 索引
提供多种索引类型,包括地理空间索引。
javascript
db.collection.createIndex({key: 1})
6. Aggregation Framework
数据聚合操作。
javascript
db.collection.aggregate([{$match: {}}, {$group: {_id: "$key", total: {$sum: 1}}}])
7. 数据分片
支持水平分片以扩展数据库。
8. 事务
支持多文档 ACID 事务。
9. 安全性
支持多种身份验证机制。
10. 监控与管理
内置的 mongostat
和 mongotop
等工具。
11. 驱动与APIs
支持多种语言的驱动。
12. 数据迁移
使用 mongodump
和 mongorestore
。
bash
mongodump --db=mydb
mongorestore dump/mydb/
13. GridFS
用于存储大文件。
14. 内存映射存储引擎
支持多种存储引擎,包括 WiredTiger。
15. Replica Sets
用于数据高可用性。
Redis
16. 介绍
Redis 是一个内存数据结构存储系统,可用作数据库、缓存和消息代理。
17. 安装与配置
bash
sudo apt-get install redis-server
18. 数据类型
支持多种数据类型,包括字符串、列表、集合、散列等。
19. 命令
提供丰富的命令集。
bash
SET key value
GET key
20. 持久化
支持多种持久化机制,如 RDB 和 AOF。
21. 发布/订阅模型
支持 Pub/Sub 通信模式。
22. 事务
虽然不是 ACID 的,但支持一组命令的原子执行。
23. 管道
可以通过管道(Pipelining)来提高性能。
24. 分区
支持水平分区。
25. 安全性
可以配置密码和 SSL。
26. Lua 脚本
支持用 Lua 脚本来执行复杂操作。
27. 监控工具
提供如 redis-cli monitor
的实时监控。
28. 高可用性
通过哨兵和集群模式实现高可用性。
29. 缓存策略
支持 LRU、LFU 等缓存过期策略。
30. 社区与生态
有着庞大的社区和丰富的客户端库。
以上是 MongoDB 和 Redis 的 30 个关键点,涵盖了基础到高级的各个方面。后续再深入了解每个技术内容。