概要: 深入探讨NoSQL数据库的核心特性,对比传统关系型数据库的差异,重点介绍Redis作为内存数据库的优势与应用场景。

文章目录
认识 NoSQL
NoSQL(Not Only SQL) : 不仅仅是SQL,是相较于传统关系型数据库而言,具有显著差异性的特殊数据库类型,因此也称为非关系型数据库
NoSQL vs SQL 对比
NoSQL相较于非关系型数据库,有着六个本质的区别
1️⃣ 结构化 vs 非结构化
特性 | 关系型数据库 | NoSQL数据库 |
---|---|---|
数据结构 | 结构化数据 | 非结构化数据 |
约束 | 严格的字段约束 | 灵活的格式支持 |
修改成本 | 高(锁表、业务影响) | 低(灵活调整) |
关系型数据库特点:
- 创建表时有严格的约束信息
- 字段名、数据类型必须预先定义
- 后期修改字段成本极高
NoSQL数据库特点:
- 支持键值型、文档型、列类型、图格式
- 格式灵活,适应业务变化
2️⃣ 关联 vs 非关联
关系型数据库: 表与表间存在外键关联
用户表 订单表 商品表
NoSQL数据库: 无关联,通过业务逻辑维护
json
{
"id": 1,
"name": "张三",
"orders": [
{
"id": 1,
"item": {
"id": 10,
"title": "荣耀6",
"price": 4999
}
},
{
"id": 2,
"item": {
"id": 20,
"title": "小米11",
"price": 3999
}
}
]
}
3️⃣ 查询方式对比
关系型数据库: 基于SQL语句
sql
SELECT id, age FROM tb_user WHERE id = 1
NoSQL数据库: 多种查询语法
bash
# Redis
get user:1
# MongoDB
db.user.find({_id: 1})
# Elasticsearch
GET http://localhost:9200/users/1
4️⃣ 事务特性
关系型数据库: 满足ACID原则
- Atomicity(原子性):事务要么全部成功,要么全部回滚
- Consistency(一致性):事务前后数据库状态一致
- Isolation(隔离性):并发事务相互隔离
- Durability(持久性):事务提交后永久保存
NoSQL数据库: 实现BASE原则
- B asically Available(基本可用)
- Soft state(软状态)
- Eventually consistent(最终一致性)
5️⃣ 存储方式
特性 | 关系型数据库 | NoSQL数据库 |
---|---|---|
存储介质 | 磁盘存储 | 内存存储 |
IO操作 | 大量磁盘IO | 内存读写 |
性能 | 受磁盘限制 | 内存速度 |
6️⃣ 扩展性
关系型数据库: 垂直扩展(主从模式)
- 主从数据一致,用于数据备份
- 受机器性能限制
NoSQL数据库: 水平扩展
- 通过哈希计算分散存储
- 解决内存大小限制问题
对比总结
特性 | SQL | NoSQL |
---|---|---|
数据结构 | 结构化 | 非结构化 |
数据关联 | 关联的 | 无关联的 |
查询方式 | SQL查询 | 非SQL |
事务特性 | ACID | BASE |
存储方式 | 磁盘 | 内存 |
扩展性 | 垂直 | 水平 |
使用场景 | 1. 数据结构固定 2. 对一致性、安全性要求高 | 1. 数据结构不固定 2. 对性能要求高 3. 需要高并发 |
认识 Redis
Redis简介
Redis 诞生于2009年,全称是 Re mote D ictionary Server(远程词典服务器),是一个基于内存的键值型NoSQL数据库。
核心特征
特征 | 说明 |
---|---|
键值型 | Value支持多种数据结构,功能丰富 |
单线程 | 每个命令具有原子性 |
低延迟 | 基于内存、IO多路复用、良好编码 |
持久化 | 支持数据持久化 |
集群 | 支持主从集群、分片集群 |
多语言 | 支持多种编程语言客户端 |
Redis优势
- 1️⃣ 极高性能:基于内存操作,响应速度极快
- 2️⃣ 原子性:单线程模型保证操作原子性
- 3️⃣ 丰富数据类型:String、Hash、List、Set、ZSet等
- 4️⃣ 持久化:RDB和AOF两种持久化方式
- 5️⃣ 分布式:支持主从复制和集群模式
- 6️⃣ 易用性:简单易用的API接口
作者信息
- 作者:Antirez
- 官网 :官网地址
Redis安装指南
🎉 总结
通过本文的学习,您已经掌握了:
- ✅ NoSQL数据库的核心概念和特性
- ✅ 关系型数据库与NoSQL的全面对比
- ✅ Redis作为内存数据库的优势和应用
- ✅ 不同场景下的数据库选择策略
下一步: 学习Redis中的相关数据结构与基本指令
💡 提示:选择合适的数据库是系统架构设计的关键一步,理解各种数据库的优缺点有助于做出最佳决策。
本文为Redis学习笔记,持续更新中...
如果我的内容对你有帮助,希望可以收获你的点赞、评论、收藏。
