《Redis 高手心法》李健青 |PDF下载|ePub下载
创建
查看
20
类别: 科技
内容简介
· · · · · ·
《Redis 高手心法》共5章。其中,第1章从一条命令的执行开始,勾勒出Redis的数据存储原理和整体架构;第2章介绍了所有数据类型的实现原理和应用实战;第3章介绍了RDB快照、AOF、主从复制架构、哨兵集群和Redis Cluster的原理及使用方法;第4章介绍了Redis事务、内存管理、事件驱动、发布/订阅机制、客户端缓存和I/O多线程模型;第5章介绍了性能排查与解决问题的检查清单、使用规范、内存优化技巧、生产王者必备配置、缓存使用策略和分布式锁演进原理。
《Redis 高手心法》适合后端开发工程师、运维人员、系统架构师及刚入行的程序员阅读,用以掌握 Redis 内部原理并提升实战技巧。
作者简介
· · · · · ·
李健青,微信公众号“码哥字节”作者、InfoQ签约作者、后端架构师,9 年互联网金融后端从业经验。擅长Redis、Spring、Kafka、MySQL 等技术,对云原生微服务有着深入的研究,喜欢用简洁、风趣、幽默的语言,将各种技术的知识点或深或浅地展开,分享自己在成长过程中积累的经验和正确提升技术水平的方法论。
目录
· · · · · ·
第1章 起势入门 1
1.1 从头说起 1
1.1.1 Redis能做什么 1
1.1.2 源码编译 2
1.1.3 目录结构 7
1.2 整体架构 8
1.2.1 数据存储原理 10
1.2.2 一条命令的执行过程 14
第2章 核心筑基——数据结构与心法 23
2.1 字符串实现原理与实战 23
2.1.1 不同于C语言的字符串 23
2.1.2 SDS的奥秘 24
2.1.3 出招实战:分布式ID生成器 27
2.2 Lists实现原理与实战 28
2.2.1 线性有序 28
2.2.2 linkedlist、ziplist、quicklist、listpack演进 28
2.2.3 出招实战:消息队列 36
2.3 Sets实现原理与实战 40
2.3.1 无序和唯一 40
2.3.2 intset 41
2.3.3 出招实战:共同好友 43
2.4 散列表实现原理与实战 44
2.4.1 field-value pairs集合 44
2.4.2 dict和listpack 45
2.4.3 出招实战:购物车 49
2.5 Sorted Sets实现原理与实战 52
2.5.1 有序性和唯一性 52
2.5.2 skiplist + dict和listpack 52
2.5.3 出招实战:游戏排行榜 57
2.6 Stream实现原理与实战 59
2.6.1 支持消费者组的轻量级MQ 59
2.6.2 Radix Tree的奥秘 60
2.6.3 出招实战:实现消费者组特性的消息队列 67
2.7 Geospatial实现原理与实战 76
2.7.1 基于位置服务 77
2.7.2 GeoHash编码和底层数据结构 81
2.7.3 出招实战:附近的人 86
2.8 Bitmap实现原理与实战 90
2.8.1 Bitmap 90
2.8.2 SDS数据结构构成的位数组 91
2.8.3 出招实战:亿级用户登录判断、签到统计系统 94
2.9 HyperLogLog实现原理与实战 97
2.9.1 基数统计 97
2.9.2 稀疏矩阵和稠密矩阵 98
2.9.3 出招实战:海量网页访问量统计 99
2.10 Bloom Filter实现原理与实战 101
2.10.1 Bloom Filter 102
2.10.2 位数组和哈希函数 102
2.10.3 出招实战:缓存穿透解决方案 103
2.11 Redis高性能的原因 106
2.11.1 基于内存实现 107
2.11.2 I/O多路复用模型 108
2.11.3 单线程模型 110
2.11.4 高效的数据结构 112
2.11.5 全局散列表 113
第3章 不死之身——高可用 114
3.1 宕机恢复,不丢数据稳如山 114
3.1.1 RDB 快照 114
3.1.2 AOF 118
3.2 主从复制架构 125
3.2.1 主从数据同步原理 127
3.2.2 主从同步的缺点 135
3.3 哨兵集群 136
3.3.1 哨兵的任务 138
3.3.2 哨兵集群原理 143
3.4 Redis集群 147
3.4.1 Redis 集群是什么 148
3.4.2 Redis 集群的原理 150
3.4.3 集群配置注意事项 164
第4章 结丹飞升——高级技能进阶 165
4.1 Redis事务修炼手册 165
4.1.1 什么是事务的 ACID 165
4.1.2 Redis 如何实现事务 166
4.1.3 Redis 事务满足 ACID 吗 168
4.2 Redis内存管理 174
4.2.1 淘汰策略概述 174
4.2.2 过期删除策略 183
4.3 Redis事件驱动:文件和时间的协奏曲 185
4.3.1 Redis server 启动入口 186
4.3.2 文件事件 190
4.3.3 时间事件 191
4.4 Redis发布/订阅机制深度解析 194
4.4.1 发布/订阅机制简介 194
4.4.2 发布/订阅机制实战 195
4.4.3 原理分析 199
4.4.4 使用场景 204
4.5 性能必杀技之客户端缓存 205
4.5.1 为什么需要客户端缓存 205
4.5.2 客户端缓存实现原理 207
4.5.3 源码解析 211
4.6 性能必杀技之Redis I/O多线程模型 213
4.6.1 单线程模型真的只有一个线程吗 213
4.6.2 线程模型的演化 214
4.6.3 I/O多线程模型解读 215
4.7 Redis内存碎片深度解析与优化策略 221
4.7.1 数据已删,释放的内存去哪了 221
4.7.2 什么是内存碎片 223
4.7.3 内存碎片的形成原因 223
4.7.4 内存碎片解决之道 224
第5章 元婴大成——出师实战 227
5.1 Redis性能排查与解决问题的终极检查清单 227
5.1.1 性能基线测量 227
5.1.2 慢命令监控 229
5.1.3 解决性能问题的终极检查清单 230
5.2 Redis很强,不懂使用规范就糟蹋了 237
5.2.1 key-value使用规范 237
5.2.2 命令使用规范 239
5.2.3 数据存储使用规范 240
5.2.4 SDK使用规范 240
5.2.5 运维规范 241
5.3 Redis内存优化必杀技,小内存存储大数据 241
5.3.1 key-value优化 242
5.3.2 小数据集合编码优化 243
5.3.3 使用对象共享池 244
5.3.4 使用bit或byte级别操作 244
5.3.5 巧用Hashes类型优化 245
5.3.6 使用内存碎片清理功能 246
5.3.7 使用32位的Redis 246
5.4 生产王者必备配置详解 246
5.4.1 常规配置 247
5.4.2 RDB 快照持久化 250
5.4.3 主从复制 251
5.4.4 安全 255
5.4.5 内存管理 256
5.4.6 惰性释放 257
5.4.7 AOF 持久化 259
5.4.8 Redis集群 261
5.4.9 性能监控 264
5.4.10 高级配置 264
5.4.11 在线内存碎片清理 270
5.4.12 绑定 CPU 271
5.4.13 sentinel.conf 哨兵 271
5.5 缓存击穿、缓存穿透、缓存雪崩怎么解决 275
5.5.1 缓存击穿 275
5.5.2 缓存穿透 277
5.5.3 缓存雪崩 278
5.6 Redis缓存策略与数据库一致性问题深度剖析 280
5.6.1 缓存策略 281
5.6.2 缓存与数据库一致性是什么 287
5.6.3 旁路缓存的问题分析 287
5.6.4 数据库与缓存一致性解决方案 293
5.6.5 总结 295
5.7 Redis分布式锁演进原理与实战 296
5.7.1 为什么需要分布式锁 296
5.7.2 入门级分布式锁 297
5.7.3 释放别人的锁 299
5.7.4 可重入锁 300
5.7.5 正确配置锁过期时间 303
5.7.6 Redis 部署方式对锁的影响 307
5.7.7 红锁 307
5.7.8 红锁的是与非 308
· · · · · ·
1.1 从头说起 1
1.1.1 Redis能做什么 1
1.1.2 源码编译 2
1.1.3 目录结构 7
1.2 整体架构 8
1.2.1 数据存储原理 10
1.2.2 一条命令的执行过程 14
第2章 核心筑基——数据结构与心法 23
2.1 字符串实现原理与实战 23
2.1.1 不同于C语言的字符串 23
2.1.2 SDS的奥秘 24
2.1.3 出招实战:分布式ID生成器 27
2.2 Lists实现原理与实战 28
2.2.1 线性有序 28
2.2.2 linkedlist、ziplist、quicklist、listpack演进 28
2.2.3 出招实战:消息队列 36
2.3 Sets实现原理与实战 40
2.3.1 无序和唯一 40
2.3.2 intset 41
2.3.3 出招实战:共同好友 43
2.4 散列表实现原理与实战 44
2.4.1 field-value pairs集合 44
2.4.2 dict和listpack 45
2.4.3 出招实战:购物车 49
2.5 Sorted Sets实现原理与实战 52
2.5.1 有序性和唯一性 52
2.5.2 skiplist + dict和listpack 52
2.5.3 出招实战:游戏排行榜 57
2.6 Stream实现原理与实战 59
2.6.1 支持消费者组的轻量级MQ 59
2.6.2 Radix Tree的奥秘 60
2.6.3 出招实战:实现消费者组特性的消息队列 67
2.7 Geospatial实现原理与实战 76
2.7.1 基于位置服务 77
2.7.2 GeoHash编码和底层数据结构 81
2.7.3 出招实战:附近的人 86
2.8 Bitmap实现原理与实战 90
2.8.1 Bitmap 90
2.8.2 SDS数据结构构成的位数组 91
2.8.3 出招实战:亿级用户登录判断、签到统计系统 94
2.9 HyperLogLog实现原理与实战 97
2.9.1 基数统计 97
2.9.2 稀疏矩阵和稠密矩阵 98
2.9.3 出招实战:海量网页访问量统计 99
2.10 Bloom Filter实现原理与实战 101
2.10.1 Bloom Filter 102
2.10.2 位数组和哈希函数 102
2.10.3 出招实战:缓存穿透解决方案 103
2.11 Redis高性能的原因 106
2.11.1 基于内存实现 107
2.11.2 I/O多路复用模型 108
2.11.3 单线程模型 110
2.11.4 高效的数据结构 112
2.11.5 全局散列表 113
第3章 不死之身——高可用 114
3.1 宕机恢复,不丢数据稳如山 114
3.1.1 RDB 快照 114
3.1.2 AOF 118
3.2 主从复制架构 125
3.2.1 主从数据同步原理 127
3.2.2 主从同步的缺点 135
3.3 哨兵集群 136
3.3.1 哨兵的任务 138
3.3.2 哨兵集群原理 143
3.4 Redis集群 147
3.4.1 Redis 集群是什么 148
3.4.2 Redis 集群的原理 150
3.4.3 集群配置注意事项 164
第4章 结丹飞升——高级技能进阶 165
4.1 Redis事务修炼手册 165
4.1.1 什么是事务的 ACID 165
4.1.2 Redis 如何实现事务 166
4.1.3 Redis 事务满足 ACID 吗 168
4.2 Redis内存管理 174
4.2.1 淘汰策略概述 174
4.2.2 过期删除策略 183
4.3 Redis事件驱动:文件和时间的协奏曲 185
4.3.1 Redis server 启动入口 186
4.3.2 文件事件 190
4.3.3 时间事件 191
4.4 Redis发布/订阅机制深度解析 194
4.4.1 发布/订阅机制简介 194
4.4.2 发布/订阅机制实战 195
4.4.3 原理分析 199
4.4.4 使用场景 204
4.5 性能必杀技之客户端缓存 205
4.5.1 为什么需要客户端缓存 205
4.5.2 客户端缓存实现原理 207
4.5.3 源码解析 211
4.6 性能必杀技之Redis I/O多线程模型 213
4.6.1 单线程模型真的只有一个线程吗 213
4.6.2 线程模型的演化 214
4.6.3 I/O多线程模型解读 215
4.7 Redis内存碎片深度解析与优化策略 221
4.7.1 数据已删,释放的内存去哪了 221
4.7.2 什么是内存碎片 223
4.7.3 内存碎片的形成原因 223
4.7.4 内存碎片解决之道 224
第5章 元婴大成——出师实战 227
5.1 Redis性能排查与解决问题的终极检查清单 227
5.1.1 性能基线测量 227
5.1.2 慢命令监控 229
5.1.3 解决性能问题的终极检查清单 230
5.2 Redis很强,不懂使用规范就糟蹋了 237
5.2.1 key-value使用规范 237
5.2.2 命令使用规范 239
5.2.3 数据存储使用规范 240
5.2.4 SDK使用规范 240
5.2.5 运维规范 241
5.3 Redis内存优化必杀技,小内存存储大数据 241
5.3.1 key-value优化 242
5.3.2 小数据集合编码优化 243
5.3.3 使用对象共享池 244
5.3.4 使用bit或byte级别操作 244
5.3.5 巧用Hashes类型优化 245
5.3.6 使用内存碎片清理功能 246
5.3.7 使用32位的Redis 246
5.4 生产王者必备配置详解 246
5.4.1 常规配置 247
5.4.2 RDB 快照持久化 250
5.4.3 主从复制 251
5.4.4 安全 255
5.4.5 内存管理 256
5.4.6 惰性释放 257
5.4.7 AOF 持久化 259
5.4.8 Redis集群 261
5.4.9 性能监控 264
5.4.10 高级配置 264
5.4.11 在线内存碎片清理 270
5.4.12 绑定 CPU 271
5.4.13 sentinel.conf 哨兵 271
5.5 缓存击穿、缓存穿透、缓存雪崩怎么解决 275
5.5.1 缓存击穿 275
5.5.2 缓存穿透 277
5.5.3 缓存雪崩 278
5.6 Redis缓存策略与数据库一致性问题深度剖析 280
5.6.1 缓存策略 281
5.6.2 缓存与数据库一致性是什么 287
5.6.3 旁路缓存的问题分析 287
5.6.4 数据库与缓存一致性解决方案 293
5.6.5 总结 295
5.7 Redis分布式锁演进原理与实战 296
5.7.1 为什么需要分布式锁 296
5.7.2 入门级分布式锁 297
5.7.3 释放别人的锁 299
5.7.4 可重入锁 300
5.7.5 正确配置锁过期时间 303
5.7.6 Redis 部署方式对锁的影响 307
5.7.7 红锁 307
5.7.8 红锁的是与非 308
· · · · · ·
下载地址:
感謝您喜歡博主推薦此書,請支持購買正版。
本站为非经营类网站,资源全部来源于网络,不制作和存储任何资源,资源版权归原著作权人所有,请于下载后24小时内删除,如涉版权或其他问题请联系howardjoe1536#gmail.com,我们将及时撤销相应资源!请支持正版!