Redis:你真的会Redis么,一文告诉你如何学习
授人以鱼亦可授人以渔,一文告诉你如何学习Redis,你3个月的学习计划有了。
写了1年多的技术文章,如果说哪块知识我掌握的相对好些,其实是MySQL和Redis,由于网上相关的学习资料非常多,这两块内容我就不单独写了,主要给大家推荐一些书籍、资料,告诉大家学习方法,并分享自己学习的学习心得。
推荐书籍
如果想系统学习Redis,肯定需要完整看一本书籍,因为书中的内容更全面。说实话,个人觉得《Redis设计与实现》比较基础,不属于进阶的范畴,只是目前真没有更好的Redis书籍,所以就只能推荐这本书,不过对于Redis的初学者,这本书绝对够!
全书分为4个部门,第一部分专门讲Redis的5种数据结构,第二部分是单机数据库,涉及到面试常考的RDB和AOF日志,第三部分是多机数据库,也就是集群,这个并发量稍微高的项目都会用到,第四部分是一些独立功能,比如发布订阅、Lua和事务等。
本书的前三部分必须要掌握,第四部分可以作为选学知识,由于书中有些地方讲的很细,比如数据结构的存储等,这个不建议细扣,不要老是去研究怎么造火箭,有时只需要知道火箭长什么样子就可以了。
经验总结:这本书不难,比较浅显易懂,初学者建议读1-2遍,看完这个,一般的Redis面试基本都能搞定。
进阶学习
蒋德钧的《Redis 核心技术与实战》
如果10分满分的话,我给林晓斌的《MySQL 实战 45 讲》打9分,给蒋德钧的《Redis 核心技术与实战》打7分。我觉得可能和他们的个人经历有关,林晓斌是腾讯数据库负责人,文章偏实战,而蒋德钧是中科院计算所副研究员,文章偏理论。不过有一点我不能太容忍的是,蒋德钧写的文章太啰嗦了(让我想起大话西游的唐僧),同样的词要反复强调很多遍。
既然觉得蒋德钧的课程没有那么好,那为什么我还是推荐出来呢,因为里面的基础知识讲解还是非常清晰的,所以可以作为Redis的进阶辅助教程。
蒋德钧的课程,我主要看的是“基础篇”,虽然很啰嗦,但是总体来说,作为基础补充还是很不错,基本就是围绕下面这些知识讲的。
至于后面的“实战篇”,我看了不到一半,就没看了,如果后面对Redis需要进阶学习,可能会再看看,就不截图了。
经验总结:这个课程,不要抱太高的期待,作为Redis进阶补充知识即可。
自己总结的资料
我自己输出的Redis文章不多,主要是《Redis设计与实现PPT》
这个其实是个PPT,差不多有40多页,主要从5种数据结构、数据同步、集群这3个方面讲解Redis,文章内容主要提炼蒋德钧的《Redis 核心技术与实战》和《Redis设计与实现》书籍。
不过我个人觉得这个PPT写的不太好,因为都是理论,缺乏实战方面的知识,不过如果想快速回顾Redis的核心知识,或者想知道Redis大致要学习哪些内容,这个PPT其实是很好的学习资料。
之前也写了2篇关于Redis的文章,面试中常考:
牛人博客
Redis主要的知识包括5种数据结构、数据持久化、集群、高并发应用场景等,也是面试常考的内容,还是列一下黎杜的博客文章:
万字长文的Redis五种数据结构详解(理论+实战) 面试造飞机系列:面对Redis持久化连环Call,你还顶得住吗? 看完这篇Redis缓存三大问题,保你能和面试官互扯 面试竟被问到Redis事务,触及知识盲区,脸都绿了 别再问我Redis内存满了该怎么办了
关于面试
学习这些知识,一方面是为了工作,另一方面其实也是为了准备面试,因为Redis是后端面试的必问范畴,所以我也简单说一下。
上面的知识掌握之后,哪怕你没有看蒋德钧的《Redis 核心技术与实战》,应付面试其实就差不多了,但是还有一些知识点再注意一下,比如Redis单线程模型、和Memcached的区别,一致性Hash等,下面是我之前面试Redis的一些常见问题,答案就不给了,网上一大堆。
心得体会
Redis是后端程序员的必备技能之一,重要程度和MySQL差不多。我学习Redis的路径其实很简单,先把书籍《Redis设计与实现》看2遍,然后在网上查看关于Redis面试的题目,最后就是学习蒋德钧的《Redis 核心技术与实战》。
我的Redis的技能其实也不高,仅能应付日常工作,以及各种面试,如果涉及到高深的知识,或者遇到非常麻烦的线上问题,可能需要二次学习。
相比于MySQL,我觉得Redis的学习要简单很多,至少没有MySQL中的各种繁琐的锁,对于想系统学习Redis的同学,可以参考我的学习轨迹,估计3个月就能学完,学习过程中,如果有任何问题,可以评论区留言,或者加我微信一起讨论哈~~
尽信书则不如无书,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激。
往期精选(欢迎转发~~)