高效使用REDIS:一书学透数据存储与高可用集群
- ISBN:9787111740124
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:216
- 出版时间:2024-01-01
- 条形码:9787111740124 ; 978-7-111-74012-4
本书特色
1)知名企业专家联合撰写,助你攻克Redis数据存储与集群管理难题 2)详解Redis新特性、多种数据结构、启动与命令执行过程,以及持久化、主从复制和高可用集群的原理、实现与应用技巧
内容简介
全书主要分为三部分介绍Redis。 第1部分介绍Redis6中使用的数据结构,包括动态字符串、跳跃表、压缩列表、字典、整数集合和快速链表,详细介绍其基本结构及常见操作。 第二部分为本书核心篇章,首先介绍了Redis6的启动流程,命令解析流程,之后对Redis6中的命令实现进行了全面的介绍,包括键命令、字符串命令、哈希表命令、列表命令、集合及有序集合命令、地理位置相关的GEO命令、统计相关的HyperLogLog命令。 第三部分,主要介绍了Redis6的一些特性及使用,包括事务、持久化、主从复制以及集群等。
目录
序
前言
第1章 Redis必会知识1
1.1 Redis 6.0的新特性2
1.2 Redis源码结构2
1.3 Redis的安装与调试3
1.4 小结6
第2章 基础数据结构解析7
2.1 对象7
2.2 字符串11
2.3 列表15
2.3.1 list15
2.3.2 ziplist16
2.3.3 quicklist18
2.4 字典25
2.4.1 基本实现25
2.4.2 字典扩容28
2.5 集合30
2.5.1 intset简介31
2.5.2 数据存储31
2.6 有序集合33
2.6.1 跳跃表简介33
2.6.2 数据存储36
2.7 小结37
第3章 stream底层数据结构38
3.1 stream简介38
3.1.1 listpack39
3.1.2 rax41
3.1.3 stream结构44
3.2 stream底层结构listpack
与rax的实现49
3.2.1 初始化49
3.2.2 查找元素49
3.2.3 添加元素51
3.2.4 删除元素53
3.2.5 遍历元素55
3.3 stream结构的实现55
3.3.1 初始化55
3.3.2 添加元素56
3.3.3 删除元素57
3.3.4 查找元素60
3.3.5 遍历元素61
3.4 小结63
第4章 Redis启动流程64
4.1 redisServer简介64
4.2 sever启动过程65
4.2.1 server初始化65
4.2.2 启动监听68
4.3 事件处理71
4.3.1 文件事件72
4.3.2 时间事件77
4.4 小结80
第5章 一次命令请求过程81
5.1 基础知识81
5.1.1 客户端结构体client81
5.1.2 命令结构体redisCommand83
5.2 I/O多线程86
5.2.1 I/O线程管理87
5.2.2 I/O线程同步89
5.3 RESP 3协议92
5.4 命令解析96
5.5 命令调用98
5.6 ACL权限控制100
5.6.1 ACL概述100
5.6.2 ACL源码实现104
5.7 结果返回105
5.8 小结108
第6章 持久化109
6.1 备份原理109
6.1.1 内存数据安全落盘110
6.1.2 异步复制112
6.1.3 文本协议与二进制协议113
6.1.4 大小端114
6.2 持久化配置115
6.3 AOF116
6.3.1 同步时机116
6.3.2 always策略安全性116
6.3.3 命令同步118
6.3.4 重写机制119
6.4 RDB119
6.4.1 执行流程119
6.4.2 RDB协议120
6.4.3 文件分析123
6.5 混合持久化124
6.6 RDB与AOF相关配置指令125
6.7 小结126
第7章 主从复制127
7.1 主从复制功能的实现127
7.1.1 主从复制方案的原理与演进128
7.1.2 主从复制的优化方案130
7.2 主从复制源码分析131
7.3 Slave源码分析135
7.4 Master源码分析141
7.5 小结145
第8章 哨兵146
8.1 哨兵简介146
8.2 哨兵的启动147
8.2.1 哨兵配置147
8.2.2 启动流程148
8.3 哨兵相关的数据结构150
8.4 哨兵的工作原理152
8.4.1 与Master节点及Slave节点
建立连接152
8.4.2 与其他哨兵建立连接155
8.5 故障转移157
8.6 小结161
第9章 集群162
9.1 数据分区163
9.2 通信机制165
9.2.1 维护元数据的方案165
9.2.2 通信数据的类型167
9.3 代码流程172
9.3.1 初始化173
9.3.2 定时任务173
9.4 主从切换175
9.4.1 自动切换176
9.4.2 手动切换181
9.5 副本漂移181
9.6 分片迁移185
9.7 小结186
第10章 Redis应用:缓存与锁187
10.1 缓存187
10.1.1 常见问题及解决方案187
10.1.2 大key问题191
10.2 锁194
10.2.1 单机悲观锁196
10.2.2 单机乐观锁199
10.2.3 官方推荐的Redlock203
10.3 客户端缓存207
10.3.1 基础知识207
10.3.2 客户端缓存的使用208
10.3.3 源码分析211
10.4 小结216
作者简介
熊浩含,字节跳动后端高级工程师,曾就职于百度、腾讯和滴滴。对Redis等开源软件有较深的研究。乐于钻研技术难点,喜欢折腾,在学习方面总结了一套较实用的方法论。
陈 雷,希望学产研负责人,清华大学与北京邮电大学硕士,曾在百度、腾讯和滴滴等公司工作,拥有15年产品研发经验,合著有《PHP 7底层设计与源码实现》。
黄 桃,希望学增长研发部负责人,从事互联网服务端研发与架构工作多年,熟悉PHP、Nginx、Redis等源码实现,乐于学习与分享,合著有《PHP 7底层设计与源码实现》。
李 乐,好未来Golang开发专家、西安电子科技大学硕士,曾就职于滴滴,乐于钻研技术与源码,合著有《Redis 5设计与源码分析》《Nginx底层设计与源码分析》。
施洪宝,Shopee后端研发工程师、东南大学硕士,对Redis、Nginx等开源软件有较深的理解,对高并发、分布式技术有浓厚兴趣。
周生政,与爱为舞后端高级工程师,曾就职于字节跳动、滴滴和北京环球国广媒体科技有限公司,熟悉To B和To C业务,拥有多年后端开源软件研究与实践经验,曾用Java、Go、Python、PHP开发线上系统。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥48.2¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0