主页 详情

《Redis深度历险:核心原理与应用实践》_钱文品著_14537446_9787121350474

【书名】:《Redis深度历险:核心原理与应用实践》
【作者】:钱文品著
【出版社】:北京:电子工业出版社
【时间】:2019
【页数】:232
【ISBN】:9787121350474
【SS码】:14537446

最新查询

内容简介

第1篇 基础和应用篇

1.1授人以鱼不如授人以渔

1.1.1由Redis面试想到的

1.1.2本书的内容范围

1.1.3 Redis可以做什么

1.1.4小结

1.1.5扩展阅读

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

1.2.1 Redis的安装

1.2.2 5种基础数据结构

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

1.2.4过期时间

1.2.5思考&作业

1.3千帆竞发——分布式锁

1.3.1分布式锁的奥义

1.3.2超时问题

1.3.3可重入性

1.3.4思考&作业

1.4缓兵之计——延时队列

1.4.1异步消息队列

1.4.2队列空了怎么办

1.4.3阻塞读

1.4.4空闲连接自动断开

1.4.5锁冲突处理

1.4.6延时队列的实现

1.4.7进一步优化

1.4.8思考&作业

1.5节衣缩食——位图

1.5.1基本用法

1.5.2统计和查找

1.5.3魔术指令bitfield

1.5.4思考&作业

1.6四两拨千斤——HyperLogLog

1.6.1使用方法

1.6.2 pfadd中的pf是什么意思

1.6.3 pfmerge适合的场合

1.6.4注意事项

1.6.5 HyperLogLog实现原理

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

1.6.7思考&作业

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

1.7.1布隆过滤器是什么

1.7.2 Redis中的布隆过滤器

1.7.3布隆过滤器的基本用法

1.7.4注意事项

1.7.5布隆过滤器的原理

1.7.6空间占用估计

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

1.7.8用不上Redis 4.0怎么办

1.7.9布隆过滤器的其他应用

1.8断尾求生——简单限流

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

1.8.2解决方案

1.8.3小结

1.9一毛不拔——漏斗限流

1.9.1 Redis-Cell

1.9.2思考&作业

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

1.10近水楼台——GeoHash

1.10.1用数据库来算附近的人

1.10.2 GeoHash算法

1.10.3 Geo指令的基本用法

1.10.4注意事项

1.11大海捞针——scan

1.11.1 scan基本用法

1.11.2字典的结构

1.11.3 scan遍历顺序

1.11.4字典扩容

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

1.11.6渐进式rehash

1.11.7更多的scan指令

1.11.8大key扫描

第2篇 原理篇

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

2.1.1非阻塞IO

2.1.2事件轮询(多路复用)

2.1.3指令队列

2.1.4响应队列

2.1.5定时任务

2.1.6扩展阅读

2.2交头接耳——通信协议

2.2.1 RESP

2.2.2客户端→服务器

2.2.3服务器→客户端

2.2.4小结

2.2.5扩展阅读

2.3未雨绸缪——持久化

2.3.1快照原理

2.3.2 fork(多进程)

2.3.3 AOF原理

2.3.4 AOF重写

2.3.5 fsync

2.3.6运维

2.3.7 Redis 4.0混合持久化

2.3.8思考&作业

2.4雷厉风行——管道

2.4.1 Redis的消息交互

2.4.2管道压力测试

2.4.3深入理解管道本质

2.4.4小结

2.5同舟共济——事务

2.5.1 Redis事务的基本用法

2.5.2原子性

2.5.3 discard(丢弃)

2.5.4优化

2.5.5 watch

2.5.6注意事项

2.5.7思考&作业

2.6小道消息—— PubSub

2.6.1消息多播

2.6.2 PubSub

2.6.3模式订阅

2.6.4消息结构

2.6.5 PubSub的缺点

2.6.6补充

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

2.7.1 32bit VS 64bit

2.7.2小对象压缩存储(ziplist)

2.7.3内存回收机制

2.7.4内存分配算法

第3篇 集群篇

3.1有备无患——主从同步

3.1.1 CAP原理

3.1.2最终一致

3.1.3主从同步与从从同步

3.1.4增量同步

3.1.5快照同步

3.1.6增加从节点

3.1.7无盘复制

3.1.8 wait指令

3.1.9小结

3.2李代桃僵——Sentinel

3.2.1消息丢失

3.2.2 Sentinel基本用法

3.2.3思考&作业

3.3分而治之——Codis

3.3.1 Codis分片原理

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

3.3.3扩容

3.3.4自动均衡

3.3.5 Codis的代价

3.3.6 Codis的优点

3.3.7 mget指令的操作过程

3.3.8架构变迁

3.3.9 Codis的尴尬

3.3.10 Codis的后台管理

3.3.11思考&作业

3.4众志成城——Cluster

3.4.1槽位定位算法

3.4.2跳转

3.4.3迁移

3.4.4容错

3.4.5网络抖动

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

3.4.7 Cluster基本用法

3.4.8槽位迁移感知

3.4.9集群变更感知

3.4.10思考&作业

第4篇 拓展篇

4.1耳听八方——Stream

4.1.1消息ID

4.1.2消息内容

4.1.3增删改查

4.1.4独立消费

4.1.5创建消费组

4.1.6消费

4.1.7 Stream消息太多怎么办

4.1.8消息如果忘记ack会怎样

4.1.9 PEL如何避免消息丢失

4.1.10 Stream的高可用

4.1.11分区Partition

4.1.12小结

4.2无所不知——Info指令

4.2.1 Redis每秒执行多少次指令

4.2.2 Redis连接了多少客户端

4.2.3 Redis内存占用多大

4.2.4复制积压缓冲区多大

4.2.5思考&作业

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

4.3.1 Redlock算法

4.3.2 Redlock使用场景

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

4.4朝生暮死——过期策略

4.4.1过期的key集合

4.4.2定时扫描策略

4.4.3从节点的过期策略

4.5优胜劣汰——LRU

4.5.1 LRU算法

4.5.2近似LRU算法

4.5.3思考&作业

4.6平波缓进——懒惰删除

4.6.1 Redis为什么使用懒惰删除

4.6.2 flush

4.6.3异步队列

4.6.4 AOF Sync也很慢

4.6.5更多异步删除点

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

4.7.1重试

4.7.2思考&作业

4.8居安思危——保护Redis

4.8.1指令安全

4.8.2端口安全

4.8.3 Lua脚本安全

4.8.4 SSL代理

4.8.5小结

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

4.9.1 spiped原理

4.9.2 spiped使用入门

4.9.3思考&作业

第5篇 源码篇

5.1丝分缕析——探索“字符串”内部

5.1.1 embstr VS raw

5.1.2扩容策略

5.1.3思考&作业

5.2循序渐进——探索“字典”内部

5.2.1 dict内部结构

5.2.2渐进式rehash

5.2.3查找过程

5.2.4 hash函数

5.2.5 hash攻击

5.2.6扩容条件

5.2.7缩容条件

5.2.8 set的结构

5.2.9思考&作业

5.3挨肩迭背——探索“压缩列表”内部

5.3.1增加元素

5.3.2级联更新

5.3.3 intset小整数集合

5.3.4思考&作业

5.4风驰电掣——探索“快速列表”内部

5.4.1每个ziplist存多少元素

5.4.2压缩深度

5.5凌波微步——探索“跳跃列表”内部

5.5.1基本结构

5.5.2查找过程

5.5.3随机层数

5.5.4插入过程

5.5.5删除过程

5.5.6更新过程

5.5.7如果score值都一样呢

5.5.8元素排名是怎么算出来的

5.5.9思考&作业

5.5.10题外话

5.6破旧立新——探索“紧凑列表”内部

5.6.1级联更新

5.6.2取代ziplist尚需时日

5.6.3思考&作业

5.7金枝玉叶——探索“基数树”内部

5.7.1应用

5.7.2结构

5.7.3思考&作业

5.8精益求精——LFU VS LRU

5.8.1 Redis对象的热度

5.8.2 LRU模式

5.8.3 LFU模式

5.8.4为什么Redis要缓存系统时间戳

5.8.5 Redis为什么在获取lruclock时使用原子操作

5.8.6如何打开LFU模式

5.8.7思考&作业

5.9如履薄冰——懒惰删除的巨大牺牲

5.9.1懒惰删除的最初实现不是异步线程

5.9.2异步线程方案其实也相当复杂

5.9.3异步删除的实现

5.9.4队列安全

5.9.5思考&作业

5.10跋山涉水——深入字典遍历

5.10.1一边遍历一边修改

5.10.2重复遍历的难题

5.10.3迭代器的结构

5.10.4迭代过程

5.10.5迭代器的选择

5.10.6思考&作业


书查询(www.shuchaxun.com)本网页唯一编码:
21626906b857626a758c7dd5344e5062#f7fe6203dc5e7cb7ddeaab3fedf3e88f#19057981#14537446.zip