Redis开发与运维 PDF

这本10元,转账给支付宝账号:gyd1@vip.qq.com
然后留下邮箱,会发过去。联系邮箱:gyd1@vip.qq.com

《Redis开发与运维 PDF》

 

目录







1
初识Redis 1
1.1
盛赞Redis 1
1.2 Redis
特性 2
1.3 Redis
使用场景 5
1.3.1 Redis
可以做什么 5
1.3.2 Redis
不可以做什么 5
1.4
用好Redis的建议 6
1.5
正确安装并启动Redis 6
1.5.1
安装Redis 7
1.5.2
配置、启动、操作、关闭Redis 8
1.6 Redis
重大版本 11
1.7
本章重点回顾 14
2 API的理解和使用 15
2.1
预备 15
2.1.1
全局命令 15
2.1.2
数据结构和内部编码 18
2.1.3
单线程架构 19
2.2
字符串 21
2.2.1
命令 22
2.2.2
内部编码 27
2.2.3
典型使用场景 28
2.3
哈希 31
2.3.1
命令 32
2.3.2
内部编码 35
2.3.3
使用场景 36
2.4
列表 38
2.4.1
命令 38
2.4.2
内部编码 43
2.4.3
使用场景 44
2.5
集合 46
2.5.1
命令 46
2.5.2
内部编码 50
2.5.3
使用场景 51
2.6
有序集合 52
2.6.1
命令 53
2.6.2
内部编码 59
2.6.3
使用场景 59
2.7
键管理 60
2.7.1
单个键管理 60
2.7.2
遍历键 67
2.7.3
数据库管理 70
2.8
本章重点回顾 73
3
小功能大用处 74
3.1
慢查询分析 74
3.1.1
慢查询的两个配置参数 75
3.1.2
最佳实践 77
3.2 Redis Shell 78
3.2.1 redis-cli
详解 78
3.2.2 redis-server
详解 82
3.2.3 redis-benchmark
详解 83
3.3 Pipeline 84
3.3.1 Pipeline
概念 84
3.3.2
性能测试 85
3.3.3
原生批量命令与Pipeline对比 86
3.3.4
最佳实践 87
3.4
事务与Lua 87
3.4.1
事务 87
3.4.2 Lua
用法简述 90
3.4.3 Redis
Lua 92
3.4.4
案例 94
3.4.5 Redis
如何管理Lua脚本 96
3.5 Bitmaps 98
3.5.1
数据结构模型 98
3.5.2
命令 98
3.5.3 Bitmaps
分析 101
3.6 HyperLogLog 102
3.7
发布订阅 105
3.7.1
命令 106
3.7.2
使用场景 108
3.8 GEO 109
3.9
本章重点回顾 112
4
客户端 113
4.1
客户端通信协议 113
4.2 Java
客户端Jedis 117
4.2.1
获取Jedis 117
4.2.2 Jedis
的基本使用方法 118
4.2.3 Jedis
连接池的使用方法 122
4.2.4 Redis
Pipeline的使用方法 125
4.2.5 Jedis
Lua脚本 126
4.3 Python
客户端redis-py 128
4.3.1
获取redis-py 128
4.3.2 redis-py
的基本使用方法 128
4.3.3 redis-py
Pipeline的使用方法 130
4.3.4 redis-py
中的Lua脚本使用方法 130
4.4
客户端管理 131
4.4.1
客户端API 132
4.4.2
客户端相关配置 145
4.4.3
客户端统计片段 145
4.5
客户端常见异常 146
4.6
客户端案例分析 149
4.6.1 Redis
内存陡增 149
4.6.2
客户端周期性的超时 151
4.7
本章重点回顾 153
5
持久化 154
5.1 RDB 154
5.1.1
触发机制 154
5.1.2
流程说明 155
5.1.3 RDB
文件的处理 156
5.1.4 RDB
的优缺点 156
5.2 AOF 157
5.2.1
使用AOF 157
5.2.2
命令写入 157
5.2.3
文件同步 158
5.2.4
重写机制 159
5.2.5
重启加载 161
5.2.6
文件校验 162
5.3
问题定位与优化 162
5.3.1 fork
操作 162
5.3.2
子进程开销监控和优化 163
5.3.3 AOF
追加阻塞 165
5.4
多实例部署 166
5.5
本章重点回顾 167
6
复制 168
6.1
配置 168
6.1.1
建立复制 168
6.1.2
断开复制 170
6.1.3
安全性 170
6.1.4
只读 170
6.1.5
传输延迟 171
6.2
拓扑 171
6.3
原理 172
6.3.1
复制过程 172
6.3.2
数据同步 175
6.3.3
全量复制 178
6.3.4
部分复制 181
6.3.5
心跳 183
6.3.6
异步复制 184
6.4
开发与运维中的问题 184
6.4.1
读写分离 184
6.4.2
主从配置不一致 186
6.4.3
规避全量复制 186
6.4.4
规避复制风暴 187
6.5
本章重点回顾 188
7 Redis的噩梦:阻塞 189
7.1
发现阻塞 189
7.2
内在原因 191
7.2.1 API
或数据结构使用不合理 191
7.2.2 CPU
饱和 193
7.2.3
持久化阻塞 194
7.3
外在原因 195
7.3.1 CPU
竞争 195
7.3.2
内存交换 195
7.3.3
网络问题 196
7.4
本章重点回顾 199
8
理解内存 200
8.1
内存消耗 200
8.1.1
内存使用统计 200
8.1.2
内存消耗划分 201
8.1.3
子进程内存消耗 203
8.2
内存管理 204
8.2.1
设置内存上限 204
8.2.2
动态调整内存上限 204
8.2.3
内存回收策略 205
8.3
内存优化 209
8.3.1 redisObject
对象 209
8.3.2
缩减键值对象 210
8.3.3
共享对象池 211
8.3.4
字符串优化 213
8.3.5
编码优化 216
8.3.6
控制键的数量 223
8.4
本章重点回顾 225
9
哨兵 226
9.1
基本概念 226
9.1.1
主从复制的问题 227
9.1.2
高可用 227
9.1.3 Redis Sentinel
的高可用性 229
9.2
安装和部署 232
9.2.1
部署拓扑结构 232
9.2.2
部署Redis数据节点 233
9.2.3
部署Sentinel节点 234
9.2.4
配置优化 236
9.2.5
部署技巧 243
9.3 API

点赞

发表评论