图书介绍
Redis深度历险 核心原理与应用实践【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- 钱文品著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121350474
- 出版时间:2019
- 标注页数:232页
- 文件大小:17MB
- 文件页数:249页
- 主题词:数据库-基本知识
PDF下载
下载说明
Redis深度历险 核心原理与应用实践PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第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魔术指令bitfield35
1.5.4思考&作业38
1.6四两拨千斤——HyperLogLog38
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的内存占用为什么是12KB49
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-Cell71
1.9.2思考&作业72
1.9.3扩展阅读:Redis-Cell作者介绍72
1.10近水楼台——GeoHash73
1.10.1用数据库来算附近的人73
1.10.2 GeoHash算法74
1.10.3 Geo指令的基本用法75
1.10.4注意事项78
1.11大海捞针——scan79
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渐进式rehash85
1.11.7更多的scan指令85
1.11.8大key扫描85
第2篇 原理篇87
2.1鞭辟入里——线程IO模型87
2.1.1非阻塞IO87
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 RESP91
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 fsync98
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 watch107
2.5.6注意事项108
2.5.7思考&作业110
2.6小道消息—— PubSub110
2.6.1消息多播110
2.6.2 PubSub111
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 64bit116
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李代桃僵——Sentinel126
3.2.1消息丢失128
3.2.2 Sentinel基本用法128
3.2.3思考&作业129
3.3分而治之——Codis130
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众志成城——Cluster137
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耳听八方——Stream144
4.1.1消息ID145
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分区Partition154
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优胜劣汰——LRU162
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 flush166
4.6.3异步队列166
4.6.4 AOF Sync也很慢166
4.6.5更多异步删除点166
4.7妙手仁心——优雅地使用Jedis167
4.7.1重试171
4.7.2思考&作业172
4.8居安思危——保护Redis172
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
5.1丝分缕析——探索“字符串”内部180
5.1.1 embstr VS raw181
5.1.2扩容策略184
5.1.3思考&作业184
5.2循序渐进——探索“字典”内部184
5.2.1 dict内部结构184
5.2.2渐进式rehash186
5.2.3查找过程187
5.2.4 hash函数188
5.2.5 hash攻击188
5.2.6扩容条件188
5.2.7缩容条件189
5.2.8 set的结构189
5.2.9思考&作业189
5.3挨肩迭背——探索“压缩列表”内部190
5.3.1增加元素192
5.3.2级联更新192
5.3.3 intset小整数集合194
5.3.4思考&作业195
5.4风驰电掣——探索“快速列表”内部195
5.4.1每个ziplist存多少元素197
5.4.2压缩深度198
5.5凌波微步——探索“跳跃列表”内部198
5.5.1基本结构199
5.5.2查找过程199
5.5.3随机层数200
5.5.4插入过程201
5.5.5删除过程202
5.5.6更新过程203
5.5.7如果score值都一样呢203
5.5.8元素排名是怎么算出来的203
5.5.9思考&作业204
5.5.10题外话204
5.6破旧立新——探索“紧凑列表”内部205
5.6.1级联更新207
5.6.2取代ziplist尚需时日207
5.6.3思考&作业207
5.7金枝玉叶——探索“基数树”内部207
5.7.1应用208
5.7.2结构210
5.7.3思考&作业213
5.8精益求精——LFU VS LRU213
5.8.1 Redis对象的热度213
5.8.2 LRU模式213
5.8.3 LFU模式214
5.8.4为什么Redis要缓存系统时间戳217
5.8.5 Redis为什么在获取lruclock时使用原子操作217
5.8.6如何打开LFU模式218
5.8.7思考&作业218
5.9如履薄冰——懒惰删除的巨大牺牲218
5.9.1懒惰删除的最初实现不是异步线程219
5.9.2异步线程方案其实也相当复杂219
5.9.3异步删除的实现221
5.9.4队列安全224
5.9.5思考&作业225
5.10跋山涉水——深入字典遍历225
5.10.1一边遍历一边修改226
5.10.2重复遍历的难题227
5.10.3迭代器的结构227
5.10.4迭代过程229
5.10.5迭代器的选择231
5.10.6思考&作业232
热门推荐
- 340035.html
- 383514.html
- 208550.html
- 1959595.html
- 1755484.html
- 144078.html
- 278952.html
- 874888.html
- 2188854.html
- 803901.html
- http://www.ickdjs.cc/book_2955032.html
- http://www.ickdjs.cc/book_1273361.html
- http://www.ickdjs.cc/book_3424952.html
- http://www.ickdjs.cc/book_1195836.html
- http://www.ickdjs.cc/book_1016433.html
- http://www.ickdjs.cc/book_1555736.html
- http://www.ickdjs.cc/book_2278820.html
- http://www.ickdjs.cc/book_1173330.html
- http://www.ickdjs.cc/book_1878398.html
- http://www.ickdjs.cc/book_2203394.html