官方深度历险核心原理与应用实践钱文品著Redis教程书籍深入理解Redi pdf下载pdf下载

官方深度历险核心原理与应用实践钱文品著Redis教程书籍深入理解Redi百度网盘pdf下载

作者:
简介:本篇提供书籍《官方深度历险核心原理与应用实践钱文品著Redis教程书籍深入理解Redi》百度网盘pdf下载
出版社:电子工业出版社官方旗舰店
出版时间:2018-12
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍



商品参数

内容全面、讲解生动,帮助读者更快、更深入地掌握Redis技能;丰富的实战经验,帮助读者更轻松地通过技术面试,进入心仪企业

编辑推荐

Redis 是互联网技术架构在存储系统中使用得最为广泛的中间件,也是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一,特别是那些优秀的互联网公司,通常要求面试者不仅仅掌握 Redis 基础用法,还要理解 Redis 内部实现的细节原理。本书作者老钱在使用 Redis 上积累了丰富的实战经验,可以帮助更多后端开发者更快、更深入地掌握 Redis 技能,还能帮助读者更轻松地通过技术面试,进入心仪企业。





内容介绍

Redis 是互联网技术架构在存储系统中使用得最为广泛的中间件,也是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一,特别是那些优秀的互联网公司,通常要求面试者不仅仅掌握 Redis 基础用法,还要理解 Redis 内部实现的细节原理。《Redis 深度历险:核心原理与应用实践》作者老钱在使用 Redis 上积累了丰富的实战经验,希望帮助更多后端开发者更快、更深入地掌握 Redis 技能。

Redis 深度历险:核心原理与应用实践》分为基础和应用篇、原理篇、集群篇、拓展篇、源码篇共 5 大块内容。基础和应用篇讲解对读者来说最有价值的内容,可以直接应用到实际工作中;原理篇、集群篇让开发者透过简单的技术表面看到精致的底层世界;拓展篇帮助读者拓展技术视野和夯实基础,便于进阶学习;源码篇让高阶的读者能够读懂源码,掌握核心技术实力。

Redis 深度历险:核心原理与应用实践》适合以下人群阅读:有 Redis 基础,渴望深度掌握 Redis 技术原理的中高级后端开发者;渴望成功进入大型互联网企业研发部的中高级后端开发者;需要支撑公司 Redis 中间件运维工作的初中级运维工程师;对 Redis 中间件技术好奇的中高级前端技术研究者。




作者介绍

钱文品(老钱)

互联网分布式高并发技术领域奋战十年的老兵,目前担任掌阅服务端技术专家。

熟练使用 JavaPythonGolang 等多种计算机语言,是开源项目爱好者。

开发过多人在线 RPG 游戏,制作过大型网站,写过消息推送系统和 MySQL 中间件。

运营公众号“码洞”(codehole)。




目录

1 基础和应用篇 / 1

1.1 授人以鱼不如授人以渔 / 1

1.1.1 Redis 面试想到的 / 1

1.1.2 本书的内容范围 / 2

1.1.3 Redis 可以做什么 / 3

1.1.4 小结 / 3

1.1.5 扩展阅读 / 4

1.2 万丈高楼平地起——Redis 基础数据结构 / 4

1.2.1 Redis 的安装 / 5

1.2.2 5 种基础数据结构 / 6

1.2.3 容器型数据结构的通用规则 / 17

1.2.4 过期时间 / 17

1.2.5 思考&作业 / 17

1.3 千帆竞发——分布式锁 / 18

1.3.1 分布式锁的奥义 / 18

1.3.2 超时问题 / 20

1.3.3 可重入性 / 21

1.3.4 思考&作业 / 24

1.4 缓兵之计——延时队列 / 24

1.4.1 异步消息队列 / 24

1.4.2 队列空了怎么办 / 26

1.4.3 阻塞读 / 26

1.4.4 空闲连接自动断开 / 26

1.4.5 锁冲突处理 / 27

1.4.6 延时队列的实现 / 27

1.4.7 进一步优化 / 30

1.4.8 思考&作业 / 31

1.5 节衣缩食——位图 / 31

1.5.1 基本用法 / 31

1.5.2 统计和查找 / 34

1.5.3 魔术指令 bitfield / 35

1.5.4 思考&作业 / 38

1.6 四两拨千斤——HyperLogLog / 38

1.6.1 使用方法 / 39

1.6.2 pfadd 中的 pf 是什么意思 / 41

1.6.3 pfmerge 适合的场合 / 42

1.6.4 注意事项 / 42

1.6.5 HyperLogLog 实现原理 / 42

1.6.6 pf 的内存占用为什么是 12KB / 49

1.6.7 思考&作业 / 50

1.7 层峦叠嶂——布隆过滤器 / 50

1.7.1 布隆过滤器是什么 / 51

1.7.2 Redis 中的布隆过滤器 / 51

1.7.3 布隆过滤器的基本用法 / 52

1.7.4 注意事项 / 59

1.7.5 布隆过滤器的原理 / 60

1.7.6 空间占用估计 / 61

1.7.7 实际元素超出时,误判率会怎样变化 / 62

1.7.8 用不上 Redis 4.0 怎么办 / 63

1.7.9 布隆过滤器的其他应用 / 63

1.8 断尾求生——简单限流 / 64

1.8.1 如何使用 Redis 来实现简单限流策略 / 64

1.8.2 解决方案 / 65

1.8.3 小结 / 67

1.9 一毛不拔——漏斗限流 / 68

1.9.1 Redis-Cell / 71

1.9.2 思考&作业 / 72

1.9.3 扩展阅读:Redis-Cell 作者介绍 / 72

1.10 近水楼台——GeoHash / 73

1.10.1 用数据库来算附近的人 / 73

1.10.2 GeoHash 算法 / 74

1.10.3 Geo 指令的基本用法 / 75

1.10.4 注意事项 / 78

1.11 大海捞针——scan / 79

1.11.1 scan 基本用法 / 80

1.11.2 字典的结构 / 82

1.11.3 scan 遍历顺序 / 82

1.11.4 字典扩容 / 83

1.11.5 对比扩容、缩容前后的遍历顺序 / 84

1.11.6 渐进式 rehash / 85

1.11.7 更多的 scan 指令 / 85

1.11.8 key 扫描 / 85

2 原理篇 / 87

2.1 鞭辟入里——线程 IO 模型 / 87

2.1.1 非阻塞 IO / 87

2.1.2 事件轮询 (多路复用) / 88

2.1.3 指令队列 / 90

2.1.4 响应队列 / 90

2.1.5 定时任务 / 90

2.1.6 扩展阅读 / 90

2.2 交头接耳——通信协议 / 90

2.2.1 RESP / 91

2.2.2 客户端→服务器 / 92

2.2.3 服务器→客户端 / 92

2.2.4 小结 / 95

2.2.5 扩展阅读 / 95

2.3 未雨绸缪——持久化 / 95

2.3.1 快照原理 / 96

2.3.2 fork(多进程) / 96

2.3.3 AOF 原理 / 97

2.3.4 AOF 重写 / 98

2.3.5 fsync / 98

2.3.6 运维 / 98

2.3.7 Redis 4.0 混合持久化 / 99

2.3.8 思考&作业 / 100

2.4 雷厉风行——管道 / 100

2.4.1 Redis 的消息交互 / 100

2.4.2 管道压力测试 / 101

2.4.3 深入理解管道本质 / 102

2.4.4 小结 / 104

2.5 同舟共济——事务 / 104

2.5.1 Redis 事务的基本用法 / 104

2.5.2 原子性 / 105

2.5.3 discard(丢弃) / 106

2.5.4 优化 / 106

2.5.5 watch / 107

2.5.6 注意事项 / 108

2.5.7 思考&作业 / 110

2.6 小道消息——PubSub / 110

2.6.1 消息多播 / 110

2.6.2 PubSub / 111

2.6.3 模式订阅 / 113

2.6.4 消息结构 / 114

2.6.5 PubSub 的缺点 / 115

2.6.6 补充 / 115

2.7 开源节流——小对象压缩 / 115

2.7.1 32bit VS 64bit / 116

2.7.2 小对象压缩存储(ziplist / 116

2.7.3 内存回收机制 / 120

2.7.4 内存分配算法 / 120

3 集群篇 / 122

3.1 有备无患——主从同步 / 122

3.1.1 CAP 原理 / 122

3.1.2 最终一致 / 123

3.1.3 主从同步与从从同步 / 123

3.1.4 增量同步 / 124

3.1.5 快照同步 / 124

3.1.6 增加从节点 / 125

3.1.7 无盘复制 / 125

3.1.8 wait 指令 / 125

3.1.9 小结 / 126

3.2 李代桃僵——Sentinel / 126

3.2.1 消息丢失 / 128

3.2.2 Sentinel 基本用法 / 128

3.2.3 思考&作业 / 129

3.3 分而治之——Codis / 130

3.3.1 Codis 分片原理 / 131

3.3.2 不同的 Codis 实例之间槽位关系如何同步 / 132

3.3.3 扩容 / 132

3.3.4 自动均衡 / 133

3.3.5 Codis 的代价 / 133

3.3.6 Codis 的优点 / 134

3.3.7 mget 指令的操作过程 / 134

3.3.8 架构变迁 / 135

3.3.9 Codis 的尴尬 / 135

3.3.10 Codis 的后台管理 / 136

3.3.11 思考&作业 / 136

3.4 众志成城——Cluster / 137

3.4.1 槽位定位算法 / 138

3.4.2 跳转 / 138

3.4.3 迁移 / 138

3.4.4 容错 / 140

3.4.5 网络抖动 / 140

3.4.6 可能下线(PFAIL)与确定下线(Fail / 141

3.4.7 Cluster 基本用法 / 141

3.4.8 槽位迁移感知 / 142

3.4.9 集群变更感知 / 143

3.4.10 思考&作业 / 143

4 拓展篇 / 144

4.1 耳听八方——Stream / 144

4.1.1 消息 ID / 145

4.1.2 消息内容 / 145

4.1.3 增删改查 / 145

4.1.4 独立消费 / 147

4.1.5 创建消费组 / 148

4.1.6 消费 / 150

4.1.7 Stream 消息太多怎么办 / 152

4.1.8 消息如果忘记 ack 会怎样 / 153

4.1.9 PEL 如何避免消息丢失 / 153

4.1.10 Stream 的高可用 / 153

4.1.11 分区 Partition / 154

4.1.12 小结 / 154

4.2 无所不知——Info 指令 / 154

4.2.1 Redis 每秒执行多少次指令 / 155

4.2.2 Redis 连接了多少客户端 / 156

4.2.3 Redis 内存占用多大 / 156

4.2.4 复制积压缓冲区多大 / 157

4.2.5 思考&作业 / 158

4.3 拾遗补漏——再谈分布式锁 / 158

4.3.1 Redlock 算法 / 158

4.3.2 Redlock 使用场景 / 159

4.3.3 扩展阅读:redlock-py 的作者 / 160

4.4 朝生暮死——过期策略 / 160

4.4.1 过期的 key 集合 / 160

4.4.2 定时扫描策略 / 160

4.4.3 从节点的过期策略 / 161

4.5 优胜劣汰——LRU / 162

4.5.1 LRU 算法 / 163

4.5.2 近似 LRU 算法 / 164

4.5.3 思考&作业 / 165

4.6 平波缓进——懒惰删除 / 165

4.6.1 Redis 为什么使用懒惰删除 / 165

4.6.2 flush / 166

4.6.3 异步队列 / 166

4.6.4 AOF Sync 也很慢 / 166

4.6.5 更多异步删除点 / 166

4.7 妙手仁心——优雅地使用 Jedis / 167

4.7.1 重试 / 171

4.7.2 思考&作业 / 172

4.8 居安思危——保护 Redis / 172

4.8.1 指令安全 / 172

4.8.2 端口安全 / 173

4.8.3 Lua 脚本安全 / 174

4.8.4 SSL 代理 / 174

4.8.5 小结 / 174

4.9 隔墙有耳——Redis 安全通信 / 175

4.9.1 spiped 原理 / 176

4.9.2 spiped 使用入门 / 176

4.9.3 思考&作业 / 179

5 源码篇 / 180