Redis理论快速入门,边学边用轻松掌握核心知识点
- 问答
- 2026-01-11 17:55:30
- 2
Redis,你可以把它理解成一个速度超快的“大本子”或者“备忘录”,它把数据直接记在电脑的内存里,因为从内存里读东西比从硬盘上读快成千上万倍,所以Redis特别适合用来处理那些需要瞬间响应的任务。
Redis是什么?为什么快?
想象一下,你去图书馆查资料,如果资料都放在门口的书架上(内存),你伸手就能拿到,这就像Redis,如果资料存在仓库的某个箱子里(硬盘),你得花时间去找去搬,这就像传统的数据库(如MySQL),Redis的快,主要就是因为数据都在内存里。
为了防止断电导致“备忘录”丢失,Redis也提供了机制可以把内存里的数据定期写到硬盘上(持久化),这个后面会说到。
Redis能存什么?五种核心“数据结构”

这是Redis最核心的概念,别被“数据结构”这个词吓到,你就把它当成是Redis帮你准备好的几种“记录信息的格式”,每种格式适合不同的场景。
-
String(字符串):这是最简单的一种,就是键值对,一个键(key)对应一个值(value),你可以把用户的登录状态存进去:键是
user:10001:status,值是online,它还可以存数字,并且能直接进行加减操作,所以非常适合做计数器,比如文章阅读量、点赞数,根据Redis官方文档(来源:Redis Documentation -> Data Types -> Strings),字符串类型是Redis最基本的数据类型。 -
Hash(哈希):这个就像一张表格或者一个对象的属性表,一个键下面可以存多对字段和值,最典型的用法是存用户信息,比如键是
user:10001,里面可以存字段name对应 “张三”,字段age对应 “25”,这样你只需要一个键就能管理一个对象的多条信息,比用多个String来存要高效得多,根据《Redis设计与实现》一书中的说明(来源:《Redis设计与实现》第三章),哈希结构特别适合表示对象。 -
List(列表):就是一个双向链表,数据像排队一样,一个接一个,你可以从左边或者右边往里放数据,这简直就是为消息队列和最新列表量身定做的,你可以用List做一个简单的任务队列:生产者从左边推进任务
lpush task_queue ‘task1’,消费者从右边取出任务处理rpop task_queue,再比如,显示微博的最新10条动态:每发一条新微博,就从左边推进List,然后只取前10个元素显示。
-
Set(集合):集合里的元素是唯一、不重复的,而且没有顺序,它有两个绝佳用途:一是标签系统,比如给一篇文章打上“科技”、“编程”、“Redis”等标签,这些标签自然就不会重复;二是共同好友或共同关注,利用Set的求交集操作,可以瞬间算出两个人共同的好友有哪些,根据Redis作者Salvatore Sanfilippo的博客观点(来源:Salvatore Sanfilippo的博客文章“An introduction to Redis data types and abstractions”),Set的求并集、交集、差集操作非常强大。
-
Sorted Set(有序集合):这是Set的升级版,它给每个元素都绑定了一个分数(score),然后根据这个分数从小到大排序,这简直是排行榜的完美实现,比如做一个游戏积分榜:键是
leaderboard,元素是玩家ID,分数是他的积分,你既可以按积分高低快速查询排名,也可以查询某个特定玩家的排名,它还可以用来做带权重的队列。
Redis的“持久化”:如何防止数据丢失?
因为数据在内存里,一断电就没了,Redis提供了两种主要的“备忘录备份”机制:

- RDB(快照):就像给当前的数据拍一张完整的照片存到硬盘上,恢复的时候,直接把照片读进内存就行,速度很快,可以设置每隔一段时间或者有多少次写操作后就自动拍一张快照,缺点是如果两次快照之间服务器宕机,会丢失这段时间的数据。
- AOF(日志追加):不拍照片,而是把每一次写操作命令都像写日记一样记录到一个文件里,恢复的时候,就把这本“操作日记”重新执行一遍,这样最多只会丢失一秒的数据(可以配置),数据安全性高,缺点是日记文件会越来越大,恢复速度比RDB慢。
在实际生产中,通常两者会结合使用,在保证数据安全的同时兼顾性能。
Redis能做什么?典型应用场景
结合上面的数据结构,Redis的应用场景就非常清晰了:
- 缓存:这是Redis最经典的用法,把数据库里经常被查询的热点数据放到Redis里,大大减轻数据库的压力。
- 会话存储:网站的用户登录信息(Session)存到Redis,实现快速验证和分布式共享(用户访问不同的服务器都能拿到登录状态)。
- 排行榜:用Sorted Set轻松搞定。
- 消息队列:用List实现简单的异步任务处理。
- 秒杀系统:利用Redis极高的读写速度,处理瞬间高并发请求,比如库存扣减。
使用Redis要注意什么?
- 内存是有限的:因为数据都放在内存,所以成本比硬盘高,需要合理设计数据结构,及时清理无用数据。
- 选择合适的持久化策略:根据你对数据安全性的要求,配置RDB和AOF。
- 避免大Key:一个Key对应的Value非常大(比如一个List里有几十万条数据),会导致操作变慢,网络传输压力大,要拆分成多个小Key。
Redis是一个基于内存、使用多种数据结构的速度利器,你只要理解了String、Hash、List、Set、Sorted Set这五种“记事本”分别适合记什么,就能在合适的场景下用它大幅提升你的应用性能,先从缓存和计数器这种简单场景用起,慢慢你就会发现它的强大之处。
本文由颜泰平于2026-01-11发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/78828.html
