Redis 深度歷險:核心原理與應用實踐
小冊介紹
Redis 是網際網路技術架構在儲存系統中使用最為廣泛的中介軟體,它也是中高階後端工程師技術面試中面試官最喜歡問的工程技能之一,特別是那些優秀的、競爭激烈的大型網際網路公司(比如
Twitter、新浪微博、阿里雲、騰訊雲、淘寶、知乎等),通常要求面試者不僅僅掌握 Redis 基礎使用,更要求深層理解 Redis
內部實現的細節原理。毫不誇張地說,能把 Redis 的知識點全部吃透,你的半隻腳就已經踏進心儀大公司的技術研發部。
但在平時經歷的很多面試中,老錢發現大多數同學只會拿 Redis 做資料快取,使用最簡單的 get/set 方法,除此之外幾乎一片茫然。也有小部分同學知道 Redis 的分散式鎖,但也不清楚其內部實現機制,甚至在使用上就不標準,導致生產環境中出現意想不到的問題。還有很多同學沒認識到 Redis 是個單執行緒結構,也不理解 Redis 緣何單執行緒還可以支援高併發等等。這也是老錢撰寫這本小冊的初衷,通過梳理總結自己的實踐經驗,幫助更多後端開發者
老錢所在的掌閱科技,為了支撐海量(億級)的使用者服務,使用了上千個 Redis 例項,包含大約 100 個 Redis 叢集 (Codis) 以及很多獨立的 Redis 節點,因此,在使用 Redis 作為快取和持久儲存中介軟體上積累了較為豐富的實戰經驗,這些都將毫無保留的分享到這本小冊中。
Redis 涉及到的知識點是非常繁多的,本小冊將主要講解其中最常見的 Redis 核心原理和應用實踐經驗,讓讀者在閱讀之後可以快速武裝自己並落地到平時的 Redis 專案開發中。除此之外,還會回顧一些底層的至關重要的電腦科學基礎原理,以及技術應用的思考方式,這些基礎的知識和技能將最終決定你的技術人生道路可以走多快走多遠。
本小冊內容結構
本小冊在內容結構上分為 Redis 基礎應用、原理、叢集、拓展學習和原始碼分析 5 個版塊:
Redis 基礎應用佔據篇幅最長,這也是對讀者最有價值的內容,可以直接應用到實際工作中。
原理和叢集版塊適合對技術有著極致追求的開發者,他們希望透過簡單的技術表面看到精緻的底層世界。
拓展學習版塊作為最核心內容之外的補充部分,主要用於進一步擴充套件技術視野或者夯實基礎,便於進階學習,作者會盡可能的在拓展篇持續擴充更多知識點。
原始碼分析版塊主要滿足高階使用者深入探索 Redis 內部實現的強烈渴望,這類讀者堅信讀懂原始碼才是技術實力的真正體現。
圖文並茂、動畫演示
作者介紹
錢文品(老錢),網際網路分散式高併發技術十年老兵,目前任掌閱服務端技術專家。熟練使用 Java、Python、Golang 等多種計算機語言,開發過遊戲,製作過網站,寫過訊息推送系統和 MySQL 中介軟體,實現過開源的 ORM 框架、Web 框架、RPC 框架等。有以下分享經歷:
掘金專欄 「老錢」 原創作者
知乎專欄 「碼洞」 資深洞主
微信公眾號「碼洞」原創作者
掘金小冊作者:「深入理解 RPC : 基於 Python 自建分散式高併發 RPC 服務」
Github 地址: github.com/pyloque
適宜人群
有一定的後端開發經驗和 Redis 基礎,渴望深度掌握 Redis 技術原理而不僅限於只會使用的中高階後端開發者;
渴望成功打入大型網際網路企業研發部的中高階後端開發者;
需要支撐公司 Redis 中介軟體運維工作的初中級運維工程師們;
希望更好的設計 Redis 面試題目的後端技術面試官;
對 Redis 中介軟體技術好奇的中高階前端技術朋友們;