●部分基本功能
章基於HTTP的內存緩存服務3
1.1緩存服務的接口3
1.1.1REST接口3
1.1.2緩存Set流程5
1.1.3緩存Get流程6
1.1.4緩存Del流程7
1.2Go語言實現8
1.2.1main包的實現8
1.2.2cache包的實現9
1.2.3HTTP包的實現14
1.3功能演示19
1.4與Redis比較21
1.4.1Redis介紹21
1.4.2redis-benchmark介紹23
1.4.3cache-benchmark介紹24
1.4.4性能對比26
1.5小結30
第2章基於TCP的內存緩存服務32
2.1基於TCP的緩存協議規範33
2.1.1協議範式33
2.1.2緩存Set流程35
2.1.3緩存Get流程36
2.1.4緩存Del流程36
2.2Go語言實現37
2.2.1main函數的變化37
2.2.2TCP包的實現38
2.2.3客戶端的實現44
2.3功能演示45
2.4性能測試47
2.5小結48
第3章數據持久化50
3.1RocksDB簡介50
3.2RocksDB性能測試51
3.2.1基本讀寫性能52
3.2.2大容量測試52
3.3用cgo調用C++庫函數55
3.4Go語言實現58
3.4.1main函數的實現58
3.4.2cache包的實現59
3.5功能演示65
3.6性能測試67
3.7小結69
第2部分性能相關
第4章用pipelining加速性能73
4.1pipelining原理73
4.2redispipelining性能對比75
4.3Go語言實現77
4.3.1main包的實現77
4.3.2cacheClient包的實現86
4.4性能測試97
4.5小結99
第5章批量寫入101
5.1批量寫入能夠提升寫入性能的原理101
5.2RocksDB批量寫入性能測試102
5.3Go語言實現103
5.4性能測試108
5.5小結112
第6章異步操作113
6.1異步操作能夠提升讀取性能的原理114
6.2Go語言實現117
6.3性能測試122
6.4小結127
第3部分服務集群
第7章分布式緩存131
7.1為什麼我們需要集群服務131
7.2負載均衡和一致性散列133
7.3獲取節點列表的接口140
7.4Go語言實現140
7.4.1main函數的實現140
7.4.2cluster包的實現141
7.4.3HTTP包的實現145
7.4.4TCP包的實現147
7.5功能演示149
7.6小結152
第8章節點再平衡154
8.1節點再平衡的技術細節154
8.2節點再平衡的接口155
8.3Go語言實現155
8.3.1HTTP包的實現155
8.3.2cache包的實現157
8.4功能演示162
8.5小結164
第9章緩存生存時間166
9.1緩存生存時間的作用166
9.2Go語言實現167
9.2.1main函數的實現167
9.2.2cache包的實現168
9.3功能演示172
9.4小結174
隨著互聯網的飛速發展,各行各業對互聯網服務的要求也越來越高,互聯網繫統很多常見的存儲類場景都面臨著容量和穩定性風險。此時,本地緩存已無法滿足需要,分布式緩存由於其高性能、高可用性等優點迅速被廣大互聯網公司接受並使用。
本書共分3個部分,每個部分都有3章。部分為基本功能的實現,主要介紹基於HTTP的in memory緩存服務、HTTP/REST協議、TCP等。第2部分介紹性能相關的內容,我們將集中全力講解從各方面提升緩存服務性能的方法,主要包括pipeline的原理、RocksDB批量寫入等。很後一個部分則和分布式緩存服務集群有關,主要介紹分布式緩存集群、節點的再平衡功能等。本書選擇用來實現分布式緩存的編程語言是當前流行的Go語言。
本書適合從事緩存方面工作的工程師或架構師,也適合想要學習和實現分布式緩存的讀者。