学习路径概览
- 第一阶段:Redis 基础入门 - 理解 Redis 是什么,能做什么。
- 第二阶段:核心数据结构与命令 - 掌握 Redis 的五大核心数据类型。
- 第三阶段:Java 客户端实践 - 学习如何在 Java 项目中操作 Redis。
- 第四阶段:进阶与实战应用 - 学习 Redis 的高级特性和实际应用场景。
- 第五阶段:最佳实践与面试准备 - 深入理解原理,解决生产问题,应对面试。
第一阶段:Redis 基础入门
这个阶段的目标是建立对 Redis 的整体认知,了解它的特点、应用场景和基本安装方法。

推荐视频教程
-
Bilibili - 尚硅谷 Redis6 最新版教程
- 简介:这是国内最经典、最受欢迎的 Redis 视频教程之一,讲解非常系统、细致,从零开始,适合没有任何基础的学习者。
- 特点:通俗易懂,知识点覆盖全面,讲解深入浅出,配有大量图解和示例。
- 链接:尚硅谷 Redis6 最新版教程 (请自行搜索,链接可能需要更新)
- 学习建议:必看系列,跟着这个系列把 Redis 的基础打牢,后面的学习会事半功倍。
-
YouTube - Redis Tutorial for Beginners
- 简介:由 Programming with Mosh 主讲,英文讲解,配有中文字幕,风格非常清晰,节奏明快。
- 特点:快速上手,适合有一定英文基础、希望快速了解核心概念的开发者。
- 链接:Redis Tutorial for Beginners
学习要点
- 什么是 Redis?:定义、特点(速度快、数据结构丰富、持久化等)。
- 应用场景:缓存、分布式锁、消息队列、排行榜、计数器等。
- 安装与启动:Windows、Linux (CentOS/Ubuntu) 下的安装和基本命令操作。
- 基本概念:
redis-cli客户端、key的命名规范、SELECT数据库。
第二阶段:核心数据结构与命令
这是 Redis 的核心,必须熟练掌握,Java 开发者尤其需要关注每种数据类型的应用场景。
推荐视频教程
- 继续跟尚硅谷的教程即可,它的第二部分就是专门讲解各种数据类型的,非常详细。
- Redis 官方教程:如果你英文不错,可以结合官方文档进行学习,命令最权威。
学习要点(重点!)
| 数据类型 | 描述 | Java 应用场景 | 核心命令 |
|---|---|---|---|
| String (字符串) | 最基本的数据类型,可以是字符串、数字、二进制 | 缓存对象、计数器、分布式 Session | SET, GET, MSET, MGET, INCR, DECR |
| Hash (哈希) | 键值对集合,适合存储对象 | 存储用户信息、商品信息等对象 | HSET, HGET, HGETALL, HKEYS, HVALS |
| List (列表) | 字符串元素的有序集合,可重复 | 消息队列、文章列表、时间线 | LPUSH, RPUSH, LPOP, RPOP, LRANGE |
| Set (集合) | 无序、唯一的字符串元素集合 | 标签系统、共同好友、点赞 | SADD, SREM, SMEMBERS, SINTER (交集), SUNION (并集) |
| Sorted Set (ZSet, 有序集合) | 每个元素都关联一个 double 类型的分数,根据分数排序 |
排行榜、积分系统、延时任务队列 | ZADD, ZSCORE, ZRANGE, ZREVRANGE, ZINCRBY |
第三阶段:Java 客户端实践
知道 Redis 怎么用后,关键是如何在 Java 代码中集成。

推荐视频教程
-
Bilibili - 尚硅谷 Redis6 教程 (Java 客户端部分)
- 简介:尚硅谷的教程在讲完基础后,会专门讲解如何使用 Java 客户端(Jedis 和 Lettuce)连接和操作 Redis。
- 特点:理论与实践结合,代码演示清晰,能快速上手。
-
Bilibili -狂神说 Redis - Spring Boot 整合 Redis
- 简介:这个系列更侧重于在现代 Java 项目(Spring Boot)中如何使用 Redis。
- 特点:讲解
spring-boot-starter-data-redis的使用,非常实用,是 Java 开发者的首选。 - 链接:狂神说 Redis (注意看 Spring Boot 整合的部分)
学习要点
-
Java 客户端选择:
- Jedis:老牌客户端,功能全面,但线程不安全,需要使用连接池。
- Lettuce:新一代客户端,基于 Netty,是 Spring Boot 2.x 的默认客户端,支持异步和响应式编程,线程安全。
-
核心操作:
(图片来源网络,侵删)- 连接配置:配置 Redis 服务器的地址、端口、密码等。
- 基本操作:通过 Java 代码执行
SET,GET,HSET等命令。 - 对象序列化:Spring Boot 默认使用
JdkSerializationRedisSerializer,但它有缺点(如可读性差),学习使用JSON序列化(如Jackson2JsonRedisSerializer)或String序列化。
-
Spring Boot 整合 (重点):
- 引入
spring-boot-starter-data-redis依赖。 - 配置
application.yml。 - 使用
@Autowired注入RedisTemplate或StringRedisTemplate。 - 学习使用
RedisTemplate的opsForValue(),opsForHash(),opsForList()等方法操作不同类型的数据。
- 引入
第四阶段:进阶与实战应用
这个阶段是区分普通开发者和高级开发者的关键。
推荐视频教程
- 继续深入尚硅谷或狂神的教程,它们通常会覆盖以下内容。
- Bilibili - 尚硅谷 Redis 高级特性:专门讲解持久化、主从复制、哨兵、集群等。
学习要点
-
持久化机制:
- RDB (Redis Database):快照方式,数据恢复快,但可能丢失数据。
- AOF (Append Only File):日志方式,数据安全性高,但文件体积大,恢复慢。
- 混合持久化:Redis 4.0+ 支持,结合两者优点。
-
高可用架构:
- 主从复制:实现数据备份和读写分离。
- 哨兵模式:监控主从节点,在主节点故障时自动进行故障转移。
- 集群模式:分片存储,解决 Redis 单机内存瓶颈,实现高可用和横向扩展。
-
缓存问题与解决方案 (面试高频考点):
- 缓存穿透:查询一个不存在的数据,解决方案:缓存空对象、布隆过滤器。
- 缓存击穿:一个热点 key 在失效的瞬间,大量请求直接打到数据库,解决方案:互斥锁、永不过期(逻辑过期)。
- 缓存雪崩:大量 key 同时失效,导致数据库压力巨大,解决方案:设置不同的过期时间、集群部署。
-
实战项目:
- 使用 Redis 实现分布式锁:了解
SETNX命令的用法,以及 Redlock 算法。 - 使用 Redis 实现分布式 Session 共享。
- 使用 Redis + Lua 脚本:保证操作的原子性。
- 使用 Redis 实现排行榜。
- 使用 Redis 实现分布式锁:了解
第五阶段:最佳实践与面试准备
将所学知识融会贯通,并了解生产环境中的常见问题和面试要点。
推荐视频教程/文章
- Bilibili - Redis 面试题讲解:搜索“Redis 面试题”,有很多视频专门讲解。
- 掘金/CSDN - Redis 深入理解系列文章:阅读高质量的博客文章,加深理解。
学习要点
-
性能优化:
- Big Key:如何发现和处理过大的 key。
- Hot Key:如何应对热点数据访问。
- 内存优化:选择合适的数据结构、使用
Hash结构存储小对象。
-
面试题总结:
- 基础题:Redis 五大数据类型及应用场景。
- 进阶题:持久化机制对比、主从复制原理、哨兵和集群的区别。
- 高频考点:缓存三大穿透、击穿、雪崩的解决方案和原理。
- 原理题:Redis 为什么快?单线程模型?如何保证原子性?
总结与建议
- 动手实践:视频看再多,不如亲手敲一遍代码,安装 Redis,写 Java 程序去操作每一种数据类型。
- 结合文档:遇到问题时,养成查阅 Redis 官方文档 的习惯。
- 项目驱动:不要孤立地学,最好能找到一个实际项目(比如电商、社交系统),思考如何用 Redis 来优化它。
- 循序渐进:不要试图一口吃成胖子,先掌握基础和 Java 整合,再逐步深入到高可用和性能优化。
按照这个路径,你将能够系统地、由浅入深地掌握 Redis,并成为一名熟练的 Redis Java 开发者,祝你学习顺利!
