暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Redis就得这么学!

十一行 2021-07-29
1139

前言

首先声明,这是极客时间的一个课程-《Redis核心技术与实战》的个人学习记录,仅供自己备忘使用,如果侵权了,请联系我,我给删了,当然还是呼吁大家都极客时间购买正版的课程,每节课下面的评论也是很有内容的,毕竟知识付费么,已经成了一种趋势了。


相信做Java的都知道鼎鼎大名的Redis吧,平时用的也很简单,也没见过啥大的问题,可能是公司业务就这样。连Redis里的大key,热key怎么解决都不知道。


学习的话也买了本《Redis的设计与实现》,看了大半部分吧,后来也就不看了,工作中真的用的不多,但这也不是不好好学的理由。无意间发现了这个不错的课程,就准备跟着学习,同时记录下重点内容。


Redis的四大坑


Redis是什么就不介绍了,来看下Redis中的四大坑:

CPU 使用上的“坑”,例如数据结构的复杂度、跨 CPU 核的访问;
内存使用上的“坑”,例如主从同步和 AOF 的内存竞争;
存储持久化上的“坑”,例如在 SSD 上做快照的性能抖动;
网络通信上的“坑”,例如多实例时的异常网络丢包。


为什么懂得了一个个技术点,却依然用不好 Redis?

首先一点,很多技术人都有一个误区,那就是,只关注零散的技术点,没有建立起一套完整的知识框架,缺乏系统观,但是,系统观其实是至关重要的。所以说要抓主线,下面来看看Redis的主线:



首先,从系统维度上说,你需要了解 Redis 的各项关键技术的设计原理,这些能够为你判断和推理问题打下坚实的基础,而且,你还能从中掌握一些优雅的系统设计规范,例如run-to-complete 模型、epoll 网络模型,这些可以应用到你后续的系统开发实践中。


高性能主线,包括线程模型、数据结构、持久化、网络框架;
高可靠主线,包括主从复制、哨兵机制;
高可扩展主线,包括数据分片、负载均衡。


学到的知识必须应用到实际中,才是有效的,下面看下在Redis出问题时的一个排查的大致路线:



举个例子,如果你遇到了 Redis 的响应变慢问题,对照着这张图,你就可以发现,这个问题和 Redis 的性能主线相关,而性能主线又和数据结构、异步机制、RDB、AOF 重写相关。找到了影响的因素,解决起来也就很容易了。

该课程分为基础篇、实践篇和未来篇。


基础篇:打破技术点之间的壁垒,带你建立网状知识结构
实践篇:场景和案例驱动,取人之长,梳理出一套属于你自己的“武林秘籍”
未来篇:具有前瞻性,解锁新特性


Redis 是一个非常优秀的系统,它在 CPU 使用、内存组织、存储持久化和

网络通信这四大方面的设计非常经典,而这些,基本涵盖了一个优秀的后端系统工程师需要掌握的核心知识和关键技术。


看起来还不错的样子,嗯,就这样。

文章转载自十一行,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论