Redis核心技术与实战

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Redis 版,经济版 1GB 1个月
简介: 作为同时具备高性能、高可靠和高可扩展性的典型键值数据库,Redis不仅功能强大,而且稳定,理所当然地成为了大型互联网公司的首选。

作为同时具备高性能、高可靠和高可扩展性的典型键值数据库,Redis不仅功能强大,而且稳定,理所当然地成为了大型互联网公司的首选。


众多大厂在招聘的时候,不仅会要求面试者能简单地使用Redis,还要能深入地理解底层实现原理,并且具备解决常见问题的能力。可以说,熟练掌握Redis已经成为了技术人的一个必备技能。


但是,在学习和使用Redis的过程中,总不可避免地遇见一些棘手的问题,比如:

  • Redis的key和数据结构应该怎么设计?有什么最佳实践?
  • Redis集群如何均衡数据?又如何横向扩展?
  • 怎么保证数据的一致性?热点数据的问题怎么解决?
  • RDB持久化生成的数据快照,每次更新是全量更新还是增量更新?
  • 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题怎么解决?
  • 如何高效阅读Redis源代码?


蒋德钧老师根据自己多年的研究以及教学经验,梳理了一套系统的Redis学习方法。他将纷繁复杂的Redis知识和问题归纳在“两大维度,三大主线”这个框架之中,希望帮你建立起系统观和全局观,从而带你彻底搞懂底层实现原理。除此之外,蒋德钧老师还会具体分析常见的问题以及应对方案,讲解Redis在典型场景(比如缓存、秒杀)中的应用,让你能够快速掌握行之有效的实战经验,并应用在自己的Redis项目中,全方位提升你的实战能力。

20210224132136590.png

课程目录:


课程主体分为4大模块。

  • 基础篇:从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。


  • 实践篇:重点从典型案例和常用场景两个维度介绍Redis的实战经验。在“案例”层面,会详细讲解数据结构的合理使用、避免请求阻塞和抖动、提升内存使用效率的关键技巧;在“场景”层面,会针对缓存和集群两大场景,透彻讲解缓存的基本原理,以及雪崩、穿透、污染等异常情况的应对方案,还会围绕集群方案优化、数据一致性、高并发访问等问题,分享具体可行的解决方案。


  • 未来篇:围绕Redis 6.0的多线程等新特性进行讲解,还会介绍业界的最新探索,帮你提前掌握Redis的发展路线图,为未来的发展做好准备。


  • 加餐篇:不定期更新,会介绍Redis的常用工具、客户端定制开发、经典的使用规范,还会带你解读大厂的Redis实践,进一步提升你的实战能力。


开篇词 (1讲)

开篇词 | 这样学Redis,才能技高一筹免费


基础篇 (10讲)

01 | 基本架构:一个键值数据库包含什么?

02 | 数据结构:快速的Redis有哪些慢操作?

03 | 高性能IO模型:为什么单线程Redis能那么快?

04 | AOF日志:宕机了,Redis如何避免数据丢失?

05 | 内存快照:宕机后,Redis如何实现快速恢复?

06 | 数据同步:主从库如何实现数据一致?

07 | 哨兵机制:主库挂了,如何不间断服务?

08 | 哨兵集群:哨兵挂了,主从库还能切换吗?

09 | 切片集群:数据增多了,是该加内存还是加实例?

10 | 第1~9讲课后思考题答案及常见问题答疑


实践篇 (28讲)

11 | “万金油”的String,为什么不好用了?

12 | 有一亿个keys要统计,应该用哪种集合?

13 | GEO是什么?还可以定义新的数据类型吗?

14 | 如何在Redis中保存时间序列数据?

15 | 消息队列的考验:Redis有哪些解决方案?

16 | 异步机制:如何避免单线程模型的阻塞?

17 | 为什么CPU结构也会影响Redis的性能?

18 | 波动的响应延迟:如何应对变慢的Redis?(上)

19 | 波动的响应延迟:如何应对变慢的Redis?(下)

20 | 删除数据后,为什么内存占用率还是很高?

21 | 缓冲区:一个可能引发“惨案”的地方

22 | 第11~21讲课后思考题答案及常见问题答疑

23 | 旁路缓存:Redis是如何工作的?

24 | 替换策略:缓存满了怎么办?

25 | 缓存异常(上):如何解决缓存和数据库的数据不一致问题?

26 | 缓存异常(下):如何解决缓存雪崩、击穿、穿透难题?

27 | 缓存被污染了,该怎么办?

28 | Pika:如何基于SSD实现大容量Redis?

29 | 无锁的原子操作:Redis如何应对并发访问?

30 | 如何使用Redis实现分布式锁?

31 | 事务机制:Redis能实现ACID属性吗?

32 | Redis主从同步与故障切换,有哪些坑?

33 | 脑裂:一次奇怪的数据丢失

34 | 第23~33讲课后思考题答案及常见问题答疑

35 | Codis VS Redis Cluster:我该选择哪一个集群方案?

36 | Redis支撑秒杀场景的关键技术和实践都有哪些?

37 | 数据分布优化:如何应对数据倾斜?

38 | 通信开销:限制Redis Cluster规模的关键因素


未来篇 (4讲)

39 | Redis 6.0的新特性:多线程、客户端缓存与安全

40 | Redis的下一步:基于NVM内存的实践

41 | 第35~40讲课后思考题答案及常见问题答疑


期末测试 | 这些Redis核心知识,你都掌握了吗?


加餐篇 (7讲)

加餐(一)| 经典的Redis学习资料有哪些?

加餐(二)| 用户Kaito:我是如何学习Redis的?

加餐(三)| 用户Kaito:我希望成为在压力中成长的人

加餐(四) | Redis客户端如何与服务器端交换命令和数据?

加餐(五) | Redis有哪些好用的运维工具?

加餐(六)| Redis的使用规范小建议

加餐(七) | 从微博的Redis实践中,我们可以学到哪些经验?


期中测试 (2讲)

期中测试题 | 一套习题,测出你的掌握程度

期中测试题答案 | 这些问题,你都答对了吗?


结束语 (1讲)

结束语 | 从学习Redis到向Redis学习

有需要的朋友留下邮箱. 仅供学习参考,请勿商用,侵删


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2天前
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
9 0
|
16天前
|
缓存 NoSQL Java
Java高并发实战:利用线程池和Redis实现高效数据入库
Java高并发实战:利用线程池和Redis实现高效数据入库
35 0
|
3天前
|
NoSQL 算法 Java
技术好文:Redis实现分布式锁的7种方案
技术好文:Redis实现分布式锁的7种方案
|
6天前
|
存储 缓存 NoSQL
SpringBoot配置第三方专业缓存技术Redis
SpringBoot配置第三方专业缓存技术Redis
14 4
|
21天前
|
存储 消息中间件 缓存
Redis:内存数据存储与缓存系统的技术探索
**Redis 概述与最佳实践** Redis,全称Remote Dictionary Server,是流行的内存数据结构存储系统,常用于数据库、缓存和消息中介。它支持字符串、哈希、列表等数据结构,并具备持久化、主从复制、集群部署及发布/订阅功能。Redis适用于缓存系统、计数器、消息队列、分布式锁和实时系统等场景。最佳实践包括选择合适的数据结构、优化缓存策略、监控调优、主从复制与集群部署以及确保安全配置。
22 3
|
22天前
|
消息中间件 缓存 NoSQL
day40--Redis(二)实战篇
day40--Redis(二)实战篇
16 2
|
23天前
|
NoSQL Redis
加速 Redis 操作:掌握管道技术提升性能与效率
加速 Redis 操作:掌握管道技术提升性能与效率
|
25天前
|
网络协议 NoSQL Redis
SMC-R 透明加速 TCP 技术,在 Redis 场景下的应用实践 | 干货推荐
SMC-R 作为一套与 TCP/IP 协议平行、向上兼容 socket 接口、底层使用 RDMA 完成共享内存通信的内核协议栈,其设计意图是为 TCP 应用提供透明的 RDMA 服务,同时保留了 TCP/IP 生态系统中的关键功能。
|
2天前
|
NoSQL 容灾 Redis
Redis系列学习文章分享---第十一篇(Redis高级实战篇---RDB演示 +RDB的fork原理+A0F演示 +RDB和AOF)
Redis系列学习文章分享---第十一篇(Redis高级实战篇---RDB演示 +RDB的fork原理+A0F演示 +RDB和AOF)
8 0
|
2天前
|
NoSQL Redis
Redis系列学习文章分享---第五篇(Redis实战篇--优惠券秒杀,全局唯一id 添加优惠券 实现秒杀下单 库存超卖问题分析 乐观锁解决超卖 实现一人一单功能 集群下的线程并发安全问题)
Redis系列学习文章分享---第五篇(Redis实战篇--优惠券秒杀,全局唯一id 添加优惠券 实现秒杀下单 库存超卖问题分析 乐观锁解决超卖 实现一人一单功能 集群下的线程并发安全问题)
5 0