猜你喜欢
分布式缓存 原理、架构及Go语言实现

分布式缓存 原理、架构及Go语言实现

书籍作者:胡世杰 ISBN:9787115491381
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:8323
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
随着互联网的飞速发展,各行各业对互联网服务的要求也越来越高,互联网系统很多常见的存储类场景都面临着容量和稳定性风险。此时,本地缓存已无法满足需要,分布式缓存由于其高性能、高可用性等优点迅速被广大互联网公司接受并使用。

本书共分3个部分,每个部分都有3章。第1部分为基本功能的实现,主要介绍基于HTTP的in memory缓存服务、HTTP/REST协议、TCP等。第2部分介绍性能相关的内容,我们将集中全力讲解从各方面提升缓存服务性能的方法,主要包括pipeline的原理、RocksDB批量写入等。最后一个部分则和分布式缓存服务集群有关,主要介绍分布式缓存集群、节点的再平衡功能等。本书选择用来实现分布式缓存的编程语言是当前流行的Go语言。

本书适合从事缓存方面工作的工程师或架构师,也适合想要学习和实现分布式缓存的读者。
作者简介
胡世杰,上海交通大学硕士,目前在七牛云任职技术专家,是私有云存储服务的负责人。
他是分布式对象存储系统专家,在该领域拥有多年的架构、开发和部署经验,精通C、C++、Perl、Python、Ruby、Go等多种编程语言,熟悉ElasticSearch、RabbitMQ等各种开源软件。之前他还写过一本关于分布式对象存储的图书—《分布式对象存储—原理、架构及Go语言实现》。本书是他的第二部作品。
除了自己写作,他还致力于技术图书的翻译,是《JavaScript面向对象精要》《Python和HDF5大数据应用》《Python高性能编程》等多部著作的译者。
编辑推荐
在网络服务大行其道的今天,缓存服务作为提升网络服务性能的有效手段也越来越受到架构师的关注。本书从内存缓存服务开始讲起,介绍了如何实现缓存服务,提升缓存服务性能的方法以及分布式缓存集群的相关知识。通过本书,读者可以熟练掌握分布式缓存的原理和方法。

本书包括以下内容:
内存缓存服务的实现;
利用RocksDB实现缓存持久化;
和Redis的性能对比;
Pipelining技术;
批量写入技术;
异步读取技术;
分布式缓存原理;
节点再平衡功能。

本书适合从事缓存方面工作的工程师或架构师阅读,也适合对分布式缓存感兴趣的人员阅读。
目录
第 1部分 基本功能
第 1章 基于HTTP的内存缓存服务 3
1.1 缓存服务的接口 3
1.1.1 REST接口 3
1.1.2 缓存Set流程 5
1.1.3 缓存Get流程 6
1.1.4 缓存Del流程 7
1.2 Go语言实现 8
1.2.1 main包的实现 8
1.2.2 cache包的实现 9
1.2.3 HTTP包的实现 14
1.3 功能演示 19
1.4 与Redis比较 21
1.4.1 Redis介绍 21
1.4.2 redis-benchmark介绍 23
1.4.3 cache-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.2 Go语言实现 37
2.2.1 main函数的变化 37
2.2.2 TCP包的实现 38
2.2.3 客户端的实现 44
2.3 功能演示 45
2.4 性能测试 47
2.5 小结 48
第3章 数据持久化 50
3.1 RocksDB简介 50
3.2 RocksDB性能测试 51
3.2.1 基本读写性能 52
3.2.2 大容量测试 52
3.3 用cgo调用C++库函数 55
3.4 Go语言实现 58
3.4.1 main函数的实现 58
3.4.2 cache包的实现 59
3.5 功能演示 65
3.6 性能测试 67
3.7 小结 69
第 2部分 性能相关
第4章 用pipelining加速性能 73
4.1 pipelining原理 73
4.2 redis pipelining性能对比 75
4.3 Go语言实现 77
4.3.1 main包的实现 77
4.3.2 cacheClient包的实现 86
4.4 性能测试 97
4.5 小结 99
第5章 批量写入 101
5.1 批量写入能够提升写入性能的原理 101
5.2 RocksDB批量写入性能测试 102
5.3 Go语言实现 103
5.4 性能测试 108
5.5 小结 112
第6章 异步操作 113
6.1 异步操作能够提升读取性能的原理 114
6.2 Go语言实现 117
6.3 性能测试 122
6.4 小结 127
第3部分 服务集群
第7章 分布式缓存 131
7.1 为什么我们需要集群服务 131
7.2 负载均衡和一致性散列 133
7.3 获取节点列表的接口 140
7.4 Go语言实现 140
7.4.1 main函数的实现 140
7.4.2 cluster包的实现 141
7.4.3 HTTP包的实现 145
7.4.4 TCP包的实现 147
7.5 功能演示 149
7.6 小结 152
第8章 节点再平衡 154
8.1 节点再平衡的技术细节 154
8.2 节点再平衡的接口 155
8.3 Go语言实现 155
8.3.1 HTTP包的实现 155
8.3.2 cache包的实现 157
8.4 功能演示 162
8.5 小结 164

第9章 缓存生存时间 166
9.1 缓存生存时间的作用 166
9.2 Go语言实现 167
9.2.1 main函数的实现 167
9.2.2 cache包的实现 168
9.3 功能演示 172
9.4 小结 174