【从零开始——Redis 进化日志|Day1】初见 Redis,开启内存加速之旅

大家在做课设或者听课的时候,你一定总能听到一个词:Redis。

在学完 MySQL 之后,很多同学的第一反应是:数据库不是已经能存数据了吗?为什么还要再学一个?直到我真正上手了一个稍微有点并发量的项目,才发现 MySQL 也有它"跑不动"的时候。

今天作为进化日志的第一天,我不带你背那些深奥的源码,咱们先用最通俗的方式,认识这位"地表最快"的数据管家。


1. 为什么我们需要 Redis?

想象一下,你正在写一个校园外卖系统。

  • MySQL 就像是"宿舍楼下的图书馆":它很大、很全,所有书籍(数据)都整整齐齐地摆在书架(磁盘)上。但如果你想查个单词,得下楼、登记、进馆、找索引、翻书,这一套流程下来,少说也要几分钟。

  • Redis 就像是"你课桌上的便利贴":它容量有限,但就在你手边(内存)。最常用的公式、最急的消息,你随手一记,抬头就能看到。

结论:MySQL 的瓶颈在于磁盘 I/O(慢),而 Redis 的优势在于内存操作(快到飞起)。


2. 到底什么是 Redis?

Redis 的全称是 Re mote Di ctionary Server(远程字典服务)。

其实,你完全可以把它看作一个运行在服务器上的、超大号的 Map<String, Object>:

  • Key :永远是字符串(比如 user:1001:name)。

  • Value:可以支持丰富的数据结构(不仅是字符串,还有列表、集合等)。

它之所以能被称为"地表最强",主要靠这两点:

  1. 纯内存操作:访问内存的速度比访问磁盘快 10 万倍以上。

  2. 极简的单线程模型:没有了线程切换和加锁的开销,效率反而更高。


3. 五大基本数据类型(今日重点)

小白入门 Redis,不需要看那些冷门的模块,只需要搞清楚这"五大家族"分别能解决什么问题:

类型 像生活中的什么? 典型实战场景
String 一个万能的收纳盒 存验证码、Session、文章阅读量计数。
List 饭堂打饭的队列 消息队列、最新评论列表(按时间排序)。
Hash 一个存详细信息的个人档案 存用户信息(比如一个用户包含 ID、姓名、年龄等)。
Set 一个去重的好友列表 存关注的人、共同好友(取交集)。
ZSet 带分数的期末成绩榜 游戏排行榜、热搜榜、积分排序。

4. 动手实操:3 秒钟感受"自动消失"的神技

Redis 最让后端开发者心动的功能之一,就是 EXPIRE(过期时间)。

假设你给用户发了一个验证码,如果这个验证码永远存在数据库里,你的硬盘迟早得炸。在 Redis 里,这只需要一行命令:

复制代码
# 1. 设置验证码 code 为 1234
> SET code 1234
OK

# 2. 让这个 code 在 60 秒后自动消失(自爆)
> EXPIRE code 60
(integer) 1

# 3. 5秒后去查,还在
> GET code
"1234"

# 60秒后再查,干净得像没存在过一样
> GET code
(nil)

5. 总结:今日进化感悟

今天我们不谈分布式,不谈高可用,只需要记住:

  1. Redis 是内存型的,它存在的意义就是为了分担 MySQL 的压力。

  2. 它是远程的 Map,跨越了语言限制。

  3. 五大类型决定了它能处理从计数到排行的大部分场景。


💡 留个小思考

既然 Redis 这么快,我们为什么不直接把所有数据都存 Redis 里的,还要用 MySQL 干嘛?

相关推荐
时间售卖铺1 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw1 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
数智园区合作社2 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
lbb 小魔仙2 小时前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
captain3763 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你02144 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
龙亘川4 小时前
综合素质评价业务建模:从过程性评价到成长档案全链路闭环
数据库·智慧城市·数据可视化
数据库小组4 小时前
NineData 实战教程:MySQL 5.5 数据迁移同步到 MySQL 8.0(跨版本升级)
数据库·mysql·mysql优化·数据库开发·数据库迁移·版本升级·数据复制
zhangjw345 小时前
1-5 PostgreSQL 数据类型全集:基础类型、字符串、数值、时间类型
数据库·postgresql
王中阳Go5 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型