Redis:你真的會Redis麼,一文告訴你如何學習

語言: CN / TW / HK

授人以魚亦可授人以漁,一文告訴你如何學習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 核心技術與實戰》,應付面試其實就差不多了,但是還有一些知識點再注意一下,比如Redis單執行緒模型、和Memcached的區別,一致性Hash等,下面是我之前面試Redis的一些常見問題,答案就不給了,網上一大堆。

心得體會

Redis是後端程式設計師的必備技能之一,重要程度和MySQL差不多。我學習Redis的路徑其實很簡單,先把書籍《Redis設計與實現》看2遍,然後在網上檢視關於Redis面試的題目,最後就是學習蔣德鈞的《Redis 核心技術與實戰》。

我的Redis的技能其實也不高,僅能應付日常工作,以及各種面試,如果涉及到高深的知識,或者遇到非常麻煩的線上問題,可能需要二次學習。

相比於MySQL,我覺得Redis的學習要簡單很多,至少沒有MySQL中的各種繁瑣的鎖,對於想系統學習Redis的同學,可以參考我的學習軌跡,估計3個月就能學完,學習過程中,如果有任何問題,可以評論區留言,或者加我微信一起討論哈~~

盡信書則不如無書,因個人能力有限,難免有疏漏和錯誤之處,如發現bug或者有更好的建議,歡迎批評指正,不吝感激。

往期精選(歡迎轉發~~)