Skip to content

后端技术数据库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. 监控与管理

内置的 mongostatmongotop 等工具。

11. 驱动与APIs

支持多种语言的驱动。

12. 数据迁移

使用 mongodumpmongorestore

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 个关键点,涵盖了基础到高级的各个方面。后续再深入了解每个技术内容。