Redis的由來
來自Reids之父的Salvatore Sanfilippo的自述,
Redis 是我在大約3年前為了解決一個實際問題而創造出來的:簡單來說,當時我在嘗試做一件使用硬碟存盤關系資料庫( on-disk SQL database )無法完成的事情——在一臺我能夠支付得起的小虛擬機上面處理大量寫入負載,
我要解決的問題在概念上并不復雜:多個網站會通過一個小型的JavaScript 追蹤器( tracker )連續不斷地向我的服務器發送頁面訪問記錄(pageview),而我的服務器需要為每個網站保存一定數量的最新頁面訪問記錄,并通過網頁將這些記錄實時地展示給用戶觀看,
在最大負載達到每秒數千條頁面記錄的情況下,無論我使用什么樣的資料庫模式( schema ),無論我如何進行優化,我所使用的關系資料庫都沒辦法在這個小虛擬機上處理如此大的負載,因為囊中羞澀,我沒辦法對虛擬機進行升級,并且我覺得應該有更簡單的方法來處理一個由推人值組成的串列,最終,我決定自己寫一個實驗性質的記憶體資料庫原型( prototype),這個資料庫使用串列作為基本資料型別,并且能夠對串列的兩端執行常數時間復雜度的彈出(pop) 和推入( push)操作,長話短說吧,這個記憶體資料庫的想法的確奏效了,于是我用C語言重寫了最初的資料庫原型,并給它加上了基于子行程實作的持久化特性,Redis 就這樣誕生了,

Redis始于實用主義——它是一個程式員因為找不到合適的工具來解決手頭上的問題而發明的,這是我認為理論性書籍無法很好地介紹Redis 的原因,這也是我喜歡《Redis實戰)( Redis in Action)的原因:這本書是為那些想要解決問題的人而寫的,它沒有乏味地介紹API,而是通過一系列引人入勝的例子深入地探究了Redis 的各項特性以及資料型別,

本書的內容
第1章 對Redis進行了基本介紹,列舉了Redis提供的5種資料結構,對比了Redis與其他資料庫之間的相同之處和不同之處,實作了一個可以對文章進行投票的簡單文章聚合網站,


第2章 介紹了如何使用Redis來提升應用程式的性能以及如何使用Redis來實作基本的網路分析,不太了解Redis的讀者應該會從第2章開始逐漸明白Redis在最近幾年變得越來越流行的原因一因為它簡單易用, 而且性能強勁,


第3章 基本上是一個命令檔案,它陸續介紹了Redis 的常用命令、基本事務命令、排序命令和過期時間命令,并給出了這些命令的使用示例,


第4章 介紹了資料持久化、性能測驗、故障恢復以及防止資料丟失等概念,這一章前幾節介紹的內容都是和Redis管理有關的,而之后的4.4節和4.5節則深入地討論了Redis 事務和流水線命令的性能,Redis 新手和中級Redis 用戶都應該閱讀4.4節和4.5節,因為本書在之后的章節里面會再次回顧這兩節提到的問題,


第5章 介紹了將Redis用作資料庫,并使用它來實作日志、計數器、IP所屬地查找程式和服務配置程式的方法,


第6章 介紹了一-些對于規模日益增長的應用程式非常有用的組件,比如自動補全、加鎖、任務佇列、訊息傳遞以及檔案分發,


第7章 深入研究了一系列與搜索有關的問題和解決方案,它們可能會改變讀者對于資料查詢和資料過濾的看法,


第8章 詳細地說明了如何構建一一個類似Twitter的社交網站,并給出了包括流API在內的整個網站后端實作,


第9章 討論了擴展Redis時會用到的記憶體優化技術,其中包括結構分片方法以及短結構的使用方法,


第10章 介紹了對Redis進行水平分片和主從復制的方法,當一臺服務器不足以滿足需求的時候,這兩項特性可以提供更強勁的性能以及更多的可用記憶體,


第11章 介紹了如何通過Lua腳本編程在服務器端對Redis的功能進行擴展,并在某些場景下把Lua腳本用作提升性能的方法,


附錄A 介紹了如何在Linux、Os X和Windows這3種不同的平臺上安裝Redis、Python 以及Python的Redis客戶端,

附錄B 是一個參考手冊,它列出了各種在使用Redis時可能會有用的資源,比如本書用到的Python語法結構的檔案,一些Redis使用案例,用于完成各種任務的第三方Redis庫,諸如此類,

這份Redis實戰筆記總共為303頁,需要完整版的朋友,可以以下方式來獲取!!


本書封面插圖的標題為“一介草民" ( A Man of the People ),這幅插圖取自19世紀法國再版的地區服飾風俗四卷匯編( four-volume compendium of regional dress customs),作者是Sylvain Marechal,同樣地,在這個難以分辨不同計算機書籍的時代,作者希望將兩個世紀前豐富多彩的地區生活融入本書封面,以此來贊美計算機行業不斷創新和敢為人先的精神,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/186590.html
標籤:其他
上一篇:阿里三面,復盤總結55題:java基礎+分布式+網路+架構設計
下一篇:計算機網路基礎知識總結
