𝔖 Scriptorium
✦   LIBER   ✦

📁

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

✍ Scribed by 胡世杰


Publisher
人民邮电出版社
Year
2019
Tongue
Chinese
Leaves
192
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


随着互联网的飞速发展,各行各业对互联网服务的要求也越来越高,互联网系统很多常见的存储类场景都面临着容量和稳定性风险。此时,本地缓存已无法满足需要,分布式缓存由于其高性能、高可用性等优点迅速被广大互联网公司接受并使用。

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

本书适合从事缓存方面工作的工程师或架构师,也适合想要学习和实现分布式缓存的读者。

✦ Table of Contents


扉页
内 容 提 要
作者简介

资源与支持
目录
第1部分 基本功能
第1章 基于HTTP的内存缓存服务
1.1 缓存服务的接口
1.1.1 REST 接口
第2章 基于TCP的内存缓存服务
第3章
第3章 数据持久化
3.1 RocksDB简介
1.1.2 缓存 Set 流程
1.1.3 缓存 Get 流程
1.1.4 缓存 Del 流程
1.2 Go语言实现
1.2.1 main 包的实现
1.2.2 cache 包的实现
1.2.3 HTTP 包的实现
1.3 功能演示
1.4 与Redis比较
1.4.1 Redis 介绍
1.4.2 redis-benchmark 介绍
1.4.3 cache-benchmark 介绍
1.4.4 性能对比
1.5 小结
2.1 基于TCP的缓存协议规范
2.1.1 协议范式
2.1.2 缓存 Set 流程
2.1.3 缓存 Get 流程
2.1.4 缓存 Del 流程
2.2 Go语言实现
2.2.1 main 函数的变化
2.2.2 TCP 包的实现
2.2.3 客户端的实现
2.3 功能演示
2.4 性能测试
2.5 小结
3.2 RocksDB性能测试
3.2.1 基本读写性能
3.2.2 大容量测试
3.3 用cgo调用C++库函数
3.4 Go语言实现
3.4.1 main 函数的实现
3.4.2 cache 包的实现
3.5 功能演示
3.6 性能测试
3.7 小结
第2部分 性能相关
第4章
第4章 用pipelining加速性能
4.1 pipelining原理
第5章 批量写入
5.1 批量写入能够提升写入性能的原理
第6章 异步操作
4.2 redis pipelining性能对比
4.3 Go语言实现
4.3.1 main 包的实现
4.3.2 cacheClient 包的实现
4.4 性能测试
4.5 小结
5.2 RocksDB批量写入性能测试
5.3 Go语言实现
cache.rocksdbCache 的新实现
5.4 性能测试
5.5 小结
6.1 异步操作能够提升读取性能的原理
6.2 Go语言实现
TCP 包的实现
6.3 性能测试
6.4 小结
第3部分 服务集群
第7章 分布式缓存
7.1 为什么我们需要集群服务
第8章 节点再平衡
8.1 节点再平衡的技术细节
第9章 缓存生存时间
9.1 缓存生存时间的作用
gossip 协议简介
7.2 负载均衡和一致性散列
一致性散列的虚拟节点
7.3 获取节点列表的接口
REST 接口
7.4 Go语言实现
7.4.1 main 函数的实现
7.4.2 cluster 包的实现
7.4.3 HTTP 包的实现
7.4.4 TCP 包的实现
7.5 功能演示
7.6 小结
8.2 节点再平衡的接口
REST 接口
8.3 Go语言实现
8.3.1 HTTP 包的实现
8.3.2 cache 包的实现
8.4 功能演示
8.5 小结
9.2 Go语言实现
9.2.1 main 函数的实现
9.2.2 cache 包的实现
9.3 功能演示
9.4 小结


📜 SIMILAR VOLUMES


深入分布式缓存:从原理到实践
✍ 于君泽; 曹洪伟; 邱硕 📂 Library 📅 2017 🏛 机械工业出版社 🌐 Chinese

<p>这是国内首本从大型互联网系统的应用角度探讨分布式缓存的书籍,包含了原理、框架、架构、案例等多方面的视角。</p> <p>互联网系统随着容量需求的陡增,许多看似简单的存储类场景都面临着巨大的容量和稳定性风险,而其中的大部分都可以通过对缓存的合理使用来规避。读者从对本书的阅读当中,将会获得应对这些问题的经验,也会对分布式缓存有一个体系化的认识。</p> <p>本书内容共分为三个部分,按照从理论到实现,再到实践的思路撰写。</p> <p>首先介绍分布式缓存的背景知识,对本书“分布式”和“缓存”这两个关键词进行了全面的综述,作为后续章节叙述的基础;</p> <p>第二部分介绍业界主流的缓

编程语言实现模式
✍ Terence Parr 📂 Library 📅 2012 🏛 华中科技大学出版社 🌐 Chinese

书签已装载, 书签制作方法请找 [email protected] 完全免费 《编程语言实现模式》旨在传授开发语言应用(工具)的经验和理念,帮助读者构建自己的语言应用。这里的语言应用并非特指用编译器或解释器实现编程语言,而是泛指任何处理、分析、翻译输入文件的程序,比如配置文件读取器、数据读取器、模型驱动的代码生成器、源码到源码的翻译器、源码分析工具、解释器,以及诸如此类的工具。为此,作者举例讲解已有语言应用的工作机制,拆解、归纳出31种易于理解且常用的设计模式(每种都包括通用数据结构、算法、策略)。虽然示例是用Java编写的,但相信读者可以触类旁通,利用这些设计模式

编程语言实现模式
✍ Terence Parr 📂 Library 📅 2012 🏛 华中科技大学出版社 🌐 Chinese

<p>《编程语言实现模式》旨在传授开发语言应用(工具)的经验和理念,帮助读者构建自己的语言应用。这里的语言应用并非特指用编译器或解释器实现编程语言,而是泛指任何处理、分析、翻译输入文件的程序,比如配置文件读取器、数据读取器、模型驱动的代码生成器、源码到源码的翻译器、源码分析工具、解释器,以及诸如此类的工具。为此,作者举例讲解已有语言应用的工作机制,拆解、归纳出31种易于理解且常用的设计模式(每种都包括通用数据结构、算法、策略)。虽然示例是用Java编写的,但相信读者可以触类旁通,利用这些设计模式构建针对其他编程语言(既包括特定领域语言,也包括通用编程语言)的应用。</p>

分布式数据库架构及企业实践——基于Mycat中间件
✍ 周继锋; 冯钻优; 陈胜尊; 左越宗 📂 Library 📅 2016 🏛 电子工业出版社 🌐 Chinese

<p>《分布式数据库架构及企业实践——基于Mycat中间件》由资深 Mycat 专家及一线架构师、DBA 编写而成。全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。《分布式数据库架构及企业实践——基于Mycat中间件》对 Mycat 从入门到进阶、从高级技术实践到架构剖析、从网络通信协议解析到系统工作原理的方方面面进行了详细讲解,并剖析了 Mycat的 SQL 路由、跨库联合查询、分布式事务及原生 MySQL、PostgreSQL 协议等核心