一文入门 MySQL + MongoDB + Redis:分类清晰、常用优先
2026/9/6 8:16:20 网站建设 项目流程

1. 简介

MySQL、MongoDB、Redis 是后端开发最常用的三类数据库。

  • MySQL:关系型数据库,适合结构化数据、事务强一致场景。
  • MongoDB:文档型数据库,适合灵活结构、海量读写场景。
  • Redis:内存键值数据库,适合缓存、队列、实时统计等高性能场景。

2. MySQL 入门

2.1 核心概念

MySQL 以「表」存储数据,表由行和列组成,通过 SQL 操作。核心特性:事务(ACID)、外键、强约束。

2.2 连接与数据库管理

下载并安装 MySQL 后,打开命令行工具,使用以下命令连接本地 MySQL 服务:

# 连接本地 MySQL 服务,-u 指定用户名,-p 提示输入密码 mysql -u root -p

参数说明:

  • -u:指定登录用户名,root 是默认超级管理员账号。
  • -p:提示输入密码,回车后输入安装时设置的 root 密码即可进入 MySQL 交互终端。
  • -h:指定主机地址,默认 localhost,连接远程数据库时使用,例如-h 192.168.1.100
  • -P:指定端口号,默认 3306,例如-P 3307

进入 MySQL 后,先查看已有数据库,再创建并进入自己的数据库:

-- 查看所有数据库 show databases; -- 创建数据库,指定 utf8mb4 字符集避免中文乱码 create database mydb default character set utf8mb4; -- 切换到指定数据库 use mydb;

参数说明:

  • show databases:列出当前 MySQL 实例中的所有数据库。
  • create database:创建新数据库,default character set utf8mb4指定字符集,避免中文乱码。
  • use:切换到指定数据库,后续建表、增删改查都在该库中进行。

2.3 常用操作

建表、增删改查是最常用操作,示例:

-- 创建用户表,id 自增主键,name 非空 create table user ( id int primary key auto_increment, name varchar(50) not null, age int ); -- 插入一条用户记录 insert into user (name, age) values ('张三', 25); -- 查询年龄大于 20 的用户 select * from user where age > 20; -- 更新张三的年龄为 26 update user set age = 26 where name = '张三'; -- 删除 id 为 1 的用户 delete from user where id = 1;

2.4 常用优先

  • 索引:加速查询,常用主键索引和普通索引。
  • 事务:保证数据一致性,使用 begin / commit / rollback。
  • 连接查询:join 关联多表数据。

3. MongoDB 入门

3.1 核心概念

MongoDB 以「文档」存储数据,文档是 JSON 风格对象,集合类似表。特点:无固定结构、水平扩展容易。

3.2 连接与数据库管理

MongoDB 安装后,默认监听 27017 端口。使用 mongosh 命令连接本地 MongoDB 服务:

# 连接本地 MongoDB 服务,默认连接 test 数据库 mongosh # 或者 mongodb://localhost:27017/

参数说明:

  • mongosh:MongoDB 官方交互式 Shell,连接本地默认实例。
  • --host:指定主机地址,默认 localhost,连接远程时使用,例如--host 192.168.1.100
  • --port:指定端口号,默认 27017,例如--port 27018。MongoDB 无需显式创建数据库,使用 use 命令切换或创建数据库,插入数据后数据库才会真正落盘:
// 切换到(不存在则创建)mydb 数据库 use mydb // 查看当前数据库 db // 查看所有数据库 show dbs

参数说明:

  • use:切换数据库,若不存在则创建,但需插入数据后才会在 show dbs 中显示。
  • db:显示当前所在的数据库名称。
  • show dbs:列出所有已有数据的数据库。

3.3 常用操作

// 插入一条用户文档 db.user.insertOne({ name: "李四", age: 30 }); // 查询年龄大于 20 的用户 db.user.find({ age: { $gt: 20 } }); // 更新李四的年龄为 31 db.user.updateOne({ name: "李四" }, { $set: { age: 31 } }); // 删除名为李四的用户 db.user.deleteOne({ name: "李四" });

3.4 常用优先

  • 索引:同样支持索引,提升查询性能。
  • 聚合管道:用于统计、分组等复杂操作。
  • 副本集:保证高可用和数据冗余。

4. Redis 入门

4.1 核心概念

Redis 是内存数据库,数据以键值对存储,读写极快。支持字符串、哈希、列表、集合、有序集合等数据类型。

4.2 连接与数据库管理

Redis 安装后,默认监听 6379 端口。使用 redis-cli 命令连接本地 Redis 服务:

# 连接本地 Redis 服务,默认连接 0 号数据库 redis-cli # 指定主机和端口连接远程 Redis redis-cli -h 192.168.1.100 -p 6379 # 设置过 用户名密码用这种 redis-cli -h 127.0.0.1 -p 6379 --user <你的用户名> --askpass

参数说明:

  • redis-cli:Redis 官方命令行客户端,连接本地默认实例。
  • -h:指定主机地址,默认 localhost,连接远程 Redis 时使用。
  • -p:指定端口号,默认 6379,例如-p 6380

Redis 默认提供 16 个逻辑数据库(编号 0-15),无需显式创建,使用 select 命令切换:

# 切换到 1 号数据库 select 1 # 查看当前数据库的键数量 dbsize # 清空当前数据库 flushdb

参数说明:

  • select:切换逻辑数据库,Redis 默认有 16 个(0-15),无需创建即可使用。
  • dbsize:查看当前数据库中的键数量。
  • flushdb:清空当前数据库中的所有键。

4.3 常用操作

# 字符串:设置和获取键 name 的值 set name "王五" get name # 哈希:设置和获取 user:1 的字段 hset user:1 name "王五" age 28 hget user:1 name # 列表:左侧入队、右侧出队 lpush queue "task1" rpop queue # 过期:设置 name 键 60 秒后过期 expire name 60

4.4 常用优先

  • 缓存:减轻数据库压力,提升响应速度。
  • 分布式锁:使用 SETNX 实现互斥控制。
  • 发布订阅:实现消息通知机制。

5. 三者对比与选型

维度MySQLMongoDBRedis
数据模型关系表文档键值
存储介质磁盘磁盘内存
事务支持强(ACID)支持(多文档)支持(Lua 脚本)
典型场景订单、账户日志、内容管理缓存、队列、计数

选型建议:数据强一致选 MySQL;结构灵活、海量数据选 MongoDB;追求极致性能选 Redis。实际项目中三者常组合使用。

6. 总结

本文介绍了 MySQL、MongoDB、Redis 的核心概念、常用操作和选型思路。建议按「先掌握常用命令,再深入原理」的路径逐步学习,并在实际项目中动手实践。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询