Memcached是一個自由、源碼開放、高性能、分布式內存對象緩存系統,目的在于通過減輕數據庫負載來使動態Web應用程序提速。
俗話說好記性不如爛筆頭。
這個文檔是我用來記錄閱讀Memcached源碼過程中的一些經驗,以及分析memcached的一些內部工作機制。
希望也能給大家帶來方便。
PDF目錄
1. 背景 .................................................................................................................................. 3
2. memcached的安裝 ........................................................................................................... 4
3. memcached的配置 ........................................................................................................... 5
4. memcached的使用 ........................................................................................................... 6
4.1. 存儲命令 ............................................................................................................ 7
4.2. 讀取命令 ............................................................................................................ 8
4.3. 刪除命令 ............................................................................................................ 8
4.4. 高級命令 ............................................................................................................ 9
4.5. 其他命令 .......................................................................................................... 10
5. Memcached內部工作機制 ............................................................................................. 11
5.1. Memcached基本的數據結構 .......................................................................... 11
5.2. 基本設計概念和處理流程 .............................................................................. 12
5.3. 內部Hash機制 ................................................................................................ 15
5.3.1. Hash函數及沖突解決 ............................................................................. 15
5.3.2. HashTable主要函數 ................................................................................ 15
5.4. slab內存處理機制 ........................................................................................... 17
5.4.1. slab主要函數 ........................................................................................... 17
5.4.2. slab機制中所采用的LRU算法 ............................................................. 19
5.5. 控制item各種函數 ......................................................................................... 20
5.6. 守護進程機制 .................................................................................................. 22
5.7. Socket處理機制 .............................................................................................. 23
5.7.1. Unix域協議 .............................................................................................. 23
5.7.2. TCP/UDP協議 ......................................................................................... 24
5.8. 多線程處理機制 .............................................................................................. 25
5.9. 事件處理機制 .................................................................................................. 25
6. 未完善之處 ..................................................................................................................... 27
7. 參考文獻 ......................................................................................................................... 28
本人水平有限,歡迎大家拍磚!
下載PDF
[1].Masahiro Nagano[JP] & charlee(譯).memcached全面剖析.2008-7-2
[2].W.Richard Stevens & 楊繼張(譯).UNIX 網絡編程(第三版).2004
[3]. W.Richard Stevens.UNIX環境高級編程(第二版).2005
[4]. dsallings.Memcached FAQ.2009-9
[5]. bachmozart .Memcached源碼分析(線程模型).
[6]. 愛寫字開發博客.Linux下啟用Wordpress的memcached支持.