redis核心原理与应用实践(内含redis基础知识与技能总结教程)

书籍介绍

redis核心原理与应用实践(内含redis基础知识与技能总结教程)

Redis 是互联网技术架构在存储系统中使用最为广泛的中间件,它也是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一,特别是那些优秀的、竞争激烈的大型互联网公司(比如 Twitter、新浪微博、阿里云、腾讯云、淘宝、知乎等),通常要求面试者不仅仅掌握 Redis 基础使用,更要求深层理解 Redis 内部实现的细节原理。毫不夸张地说,能把 Redis 的知识点全部吃透,你的半只脚就已经踏进心仪大公司的技术研发部。

但在平时经历的很多面试中,老钱发现大多数同学只会拿 Redis 做数据缓存,使用最简单的 get/set 方法,除此之外几乎一片茫然。也有小部分同学知道 Redis 的分布式锁,但也不清楚其内部实现机制,甚至在使用上就不标准,导致生产环境中出现意想不到的问题。还有很多同学没认识到 Redis 是个单线程结构,也不理解 Redis 缘何单线程还可以支持高并发等等。这也是老钱撰写这本小册的初衷,通过梳理总结自己的实践经验,帮助更多后端开发者更快更深入的掌握 Redis 技能。

老钱所在的掌阅科技,为了支撑海量(亿级)的用户服务,使用了上千个 Redis 实例,包含大约 100 个 Redis 集群 (Codis) 以及很多独立的 Redis 节点,因此,在使用 Redis 作为缓存和持久存储中间件上积累了较为丰富的实战经验,这些都将毫无保留的分享到这本小册中。

Redis 涉及到的知识点是非常繁多的,本小册将主要讲解其中最常见的 Redis 核心原理和应用实践经验,让读者在阅读之后可以快速武装自己并落地到平时的 Redis 项目开发中。除此之外,还会深入一些底层的至关重要的计算机科学基础原理,以及技术应用的思考方式,这些基础的知识和技能将最终决定你的技术人生道路可以走多快走多远。

本书目录

  1. 开篇:授人以鱼不若授人以渔 —— Redis 可以用来做什么?
  2. 基础:万丈高楼平地起 —— Redis 基础数据结构
  3. 应用 1:千帆竞发 —— 分布式锁
  4. 应用 2:缓兵之计 —— 延时队列
  5. 应用 3:节衣缩食 —— 位图
  6. 应用 4:四两拨千斤 —— HyperLogLog
  7. 应用 5:层峦叠嶂 —— 布隆过滤器
  8. 应用 6:断尾求生 —— 简单限流
  9. 应用 7:一毛不拔 —— 漏斗限流
  10. 应用 8:近水楼台 —— GeoHash
  11. 应用 9:大海捞针 —— Scan
  12. 原理 1:鞭辟入里 —— 线程 IO 模型
  13. 原理 2:交头接耳 —— 通信协议
  14. 原理 3:未雨绸缪 —— 持久化
  15. 原理 4:雷厉风行 —— 管道
  16. 原理 5:同舟共济 —— 事务
  17. 原理 6:小道消息 —— PubSub
  18. 原理 7:开源节流 —— 小对象压缩
  19. 原理 8:有备无患 —— 主从同步
  20. 集群 1:李代桃僵 —— Sentinel
  21. 集群 2:分而治之 —— Codis
  22. 集群 3:众志成城 —— Cluster
  23. 拓展 1:耳听八方 —— Stream
  24. 拓展 2:无所不知 —— Info 指令
  25. 拓展 3:拾遗补漏 —— 再谈分布式锁
  26. 拓展 4:朝生暮死 —— 过期策略
  27. 拓展 5:优胜劣汰 —— LRU
  28. 拓展 6:平波缓进 —— 懒惰删除
  29. 拓展 7:妙手仁心 —— 优雅地使用 Jedis
  30. 拓展 8:居安思危 —— 保护 Redis
  31. 拓展 9:隔墙有耳 —— Redis 安全通信
  32. 拓展 10:法力无边 —— Redis Lua 脚本执行原理
  33. 拓展 11:短小精悍 —— 命令行工具的妙用
  34. 源码 1:丝分缕析 —— 探索「字符串」内部
  35. 源码 2:循序渐进 —— 探索「字典」内部
  36. 源码 3:挨肩迭背 —— 探索「压缩列表」内部
  37. 源码 4:风驰电掣 —— 探索「快速列表」内部
  38. 源码 5:凌波微步 —— 探索「跳跃列表」内部
  39. 源码 6:破旧立新 —— 探索「紧凑列表」内部
  40. 源码 7:金枝玉叶 —— 探索「基数树」内部
  41. 源码 8:精益求精 —— LFU vs LRU
  42. 源码 9:如履薄冰 —— 懒惰删除的巨大牺牲
  43. 源码 10:跋山涉水 —— 深入字典遍历
  44. 源码 11:见缝插针 —— 探索 HyperLogLog 内部
  45. 尾声:百尺竿头 —— 继续深造指南

本书内容结构

本小册在内容结构上分为 Redis 基础应用、原理、集群、拓展学习和源码分析 5 个版块:

  • Redis 基础应用:占据篇幅最长,这也是对读者最有价值的内容,可以直接应用到实际工作中。
  • 原理和集群版块:适合对技术有着极致追求的开发者,他们希望透过简单的技术表面看到精致的底层世界。
  • 拓展学习版块:作为最核心内容之外的补充部分,主要用于进一步扩展技术视野或者夯实基础,便于进阶学习,作者会尽可能的在拓展篇持续扩充更多知识点。
  • 源码分析版块:主要满足高阶用户深入探索 Redis 内部实现的强烈渴望,这类读者坚信读懂源码才是技术实力的真正体现。

适宜人群

  1. 有 Redis 基础,渴望深度掌握 Redis 技术原理而不仅限于只会使用的中高级后端开发者;
  2. 渴望成功打入大型互联网企业研发部的中高级后端开发者;
  3. 需要支撑公司 Redis 中间件运维工作的初中级运维工程师们;
  4. 希望更好的设计 Redis 面试题目的后端技术面试官;
  5. 对 Redis 中间件技术好奇的中高级前端技术朋友们;

作者介绍

钱文品(老钱),互联网分布式高并发技术十年老兵,目前任掌阅服务端技术专家。熟练使用 Java、Python、Golang 等多种计算机语言,开发过游戏,制作过网站,写过消息推送系统和 MySQL 中间件,实现过开源的 ORM 框架、Web 框架、RPC 框架等。有以下分享经历:

  • 掘金专栏 「老錢」 原创作者
  • 知乎专栏 「码洞」 资深洞主
  • 微信公众号「码洞」原创作者
  • 掘金小册作者:「深入理解 RPC : 基于 Python 自建分布式高并发 RPC 服务」
  • Github 地址: github.com/pyloque
(0)
上一篇 2020年4月22日 下午11:01
下一篇 2020年4月23日 上午7:50

相关推荐

发表回复

登录后才能评论