《深入分布式缓存:从原理到实践》

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/78715771 喔家ArchiSelf入行20多年来,有了一次不同寻常的尝试,虽然只是合力出了一本书。
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/78715771


入行20多年来,有了一次不同寻常的尝试,虽然只是合力出了一本书。



时间回溯到2016年, 最初出于挖人的险恶用心,进入了一个名叫“中生代技术”的技术群。本以为和自己加入的诸多技术群类似,没想到在这里发现了一群有趣的人,一群热爱技术的人,一群为了一些技术细节争论得面红耳赤的人。因为公众号wireless_com的一篇文字《老曹眼中的缓存技术》,在博客上是《全栈必备 缓存基础》,右军找到了我,开启了本次著书之旅。


感谢互联网,十个人的跨地域沟通,十个人各自创作,整合,交叉review,使这次众创成为可能。每个人都是part time,都在消费自己的闲暇时间,都很辛苦的付出。 几个伙伴都更换了工作,幸运的是,大家都坚持了下来。


神奇的是,我们在众创著书之前大都素未谋面,自己也是在在后来的SDCC活动中面基了小程和开涛。




其他的伙伴,只能等书籍现售的时候,看看有没有机会不再神交的可能。这些伙伴有着各自的特点,但都充满着对技术的热情包括我自己,他们是:


于君泽:蚂蚁金服高级技术专家、花名右军,IT从业超过十五年。对高并发、分布式架构、内建质量、研发管理有一些心得。维护公众号“技术琐话”。


程超:“爱农驿站”首席支付技术专家。InfoQ、中生代技术社区签约作者,CSDN博主专家,Spring for all社区贡献者,擅长微服务和分布式架构。


邱硕:蚂蚁金服技术专家,花名牧丘,在阿里和支付宝从事中间件、应用系统的性能/稳定性技术风险相关工作。Cobar主要作者。


曹洪伟:70后老码农,全栈工匠一枚,服务过多家世界500强,后连续创业,现任渡鸦科技CTO,致力于人工智能硬件,维护有“wireless_com ”公众号 和博客


刘璟宇:拍拍贷资深架构师,十余年互联网行业从业经验,主要研究云计算、服务化基础框架以及各种基础组件。


张开涛:京东架构师,畅销书《亿级流量网站架构核心技术》作者,维护有“开涛的博客”公众号。


何涛:网联高级架构师,对高流量下的架构设计有丰富的实践经验,热衷于高可用、高并发和高性能的架构研究。


宋慧庆:勤诚互动研发总监兼高级架构师,十年互联网广告行业经验,主要研究高可用架构技术,为流量变现提供更好的服务。


陈波:新浪微博技术专家,负责平台基础架构及优化,经历了微博从起步到成为数亿用户的大型互联网系统的演进过程。


王晓波:同程旅游首席架构师,10余年互联网行业从业经验,负责中间件、微服务、分布式架构、运维、安全等方面工作。


履历都是过往,完本的时候, 大家写下了如下的感慨——


我在这部书里,负责编写了Tair章节,合作编写了缓存周边、动手写缓存章节,期间阅读了大量的代码、整理了非常多的资料,希望能带给读者需要的知识。在一年多的时间里,工作之余的大部分时间,都投入到了书的编写中。在这个过程中,家人给了我极大的支持,这里特别感谢我的太太李春花。一年多的时间里,有因为大促工作量激增,有因为工作变动导致工余时间减少,感谢右军持续的鼓励,感谢一同编写本书的其他伙伴及时的帮助!
—刘璟宇 拍拍贷资深架构师


很幸运,从2009年新浪微博发展之初就参与微博平台系统的的研发及架构工作,经历了微博从起步到当前月活用户数亿的大型互联网系统的技术演进过程。系统演进中经历了很多曲折、困难、不眠之夜,多亏了@TimYang、@zhulei、@liudaoru等那么多良师益友,一路上大家志同道合披荆斩棘,回头看经历的种种困难却正好是不断进步的印记。最后感谢@右军的邀请和大力组织,感谢@Mis晓晓 的包容和支持,正因为有了你们,我才得以完成相关内容的编写和完善。
—陈波 新浪微博平台架构技术专家


从事数据访问层工作期间,会收到很多缓存方面的技术支持,在支持的同时,对缓存也有了更深入的了解,也促使我思考如何将这些实践经验分享给更多的人。正好右军邀请参与本书的写作,便欣然同意。写作期间,阅读了大量的源码,并和联合作者相互交流缓存的原理及实践经验,力求能够呈现实用的技术。本书涉及的分布式缓存体系非常全面,从分布式、Redis、Memcached等原理的剖析到大量的一线实践案例,并且对分布式缓存应用当中的一些痛点、难点进行了深入的阐述。希望本书能够为想了解缓存技术的读者带来快乐和收益。
—何涛 唯品会架构师


承右军兄邀请,有幸参与本书第11章“Aerospike原理及广告业务应用”的编写。本人虽然在互联网广告行业摸爬打滚十余年,从广告网络到SSP、DSP,再到苹果应用市场的推广(ASO,ASM),从PC广告到移动原生广告都有所涉及。对于广告系统架构搭建(存储,计算,缓存)以及系统的高可用较熟悉之外,对于写书确实是赶鸭子上架头一回。又由于平时工作繁忙,家里琐碎事情亦多,几有放弃之念想,但此事绝非君子所为。若如此辜负右军兄及其他几位一同写书的弟兄,于心不忍,日后亦无颜面对他们。故硬着头皮,把此章写完并交付出版社。听闻此章定稿之后,感觉如释重负,精神亦有所高涨。当然,能够坚持下去的另一个重要原因是,其他各位参与编写本书的弟兄的鞭策和鼓励。在这里要特别感谢右军和老曹。由于本人水平有限,还望各位亲爱的读者海涵。
—宋慧庆 勤诚互动高级架构师


首先非常感谢右军兄邀请我加入写作团队,我主要负责第3章、第4章,同此参与合作编写了第6章。虽然我自己经常写一些博客文章,但是写书和写博客是完全不一样的过程,写书是要能够带领读者逐步深入学习,而不是简单地将知识点罗列出来。在这个过程中非常感谢右军和孙海亮对我进行认真的指导,让我的写作水平有了非常大的提高。当我第一篇稿子定稿的时候,我内心的成就感是很难用言语来表达的。由于本书的写作时间周期比较长,在中途的过程中由于工作繁忙,我也曾经有退出的想法,右军和曹哥给了我巨大的鼓励,让我学会了坚持,同时我的妻子和我的父母也给了我巨大的支持,让我能够学会与团队协作。对于我来讲这本书对我的意义已经超过内容本身的范畴,我也希望通过这本书能够给我的孩子树立一个贵在坚持和勇于尝试的榜样。最后由于本人写作水平有限,还请各位读者朋友海涵和包容。
—程超 爱农驿站首席支付技术专家


Web应用相对于传统的软件,在服务的吞吐量方面有更高的要求,也是其面临的主要难点之一。对于无状态的应用服务,日益增加的吞吐量最终转化成存储层的压力,使得后者既要解决数据一致性问题,又要考虑性能和吞吐量,成为Web应用性能的关键,因此已有的文档和书籍主要聚焦在它的优化上。
而缓存作为应用服务节点和持久化存储节点间的辅助层,分担着后者的吞吐量需求,好的缓存设计可以极大地降低存储层的容量风险。本书从缓存的原理、实现到缓存在不同场景的实施方案给出系统化的介绍,为“好的缓存设计”提供了指导。因此在受邀参与本书编写时,既感到荣幸,又感到意义重大。
好的写作依赖于热情和投入,而书籍的编写又需要长时间的毅力和坚持,这让本书的编写像是一段长跑里需要不断冲刺,也让这份“意义重大”既是之于内容本身,也是之于作者的自我提升。感谢本书主笔于君泽的坚持,也感谢其他每一位作者的投入,他们鞭策着我在此领域学习和思考。限于自己的水平,谨希望所编写的章节能为读者们带来一点帮助。内容有欠缺之处,也希望读者批评指教,以此驱动这个领域的应用和实践持续演进。
—邱硕 蚂蚁金服技术专家


作为一个70后的老码农,一个半吊子全栈工匠,在中生代技术(freshman Technology)社区有幸认识了很多志同道合的技术人。因为自己在公众号(wireless_com)上的一篇关于缓存基础的随笔而结识了@右军,进而参与了本书的创作。在如今用户体验至上的时代,性能成为系统设计中的一种核心约束,在性能提升的各种技术手段中,缓存为王。随着技术的演进,缓存同样与时俱进。参与编写的过程是一个对经验梳理的过程,同时也是一个人提升的过程,尤其是和各位作者的切磋,获益匪浅。每一位作者都牺牲了大量的闲暇时间,为本书的出版付出了巨大的努力。我感谢自己的妻儿,感谢家人对自己的支持,希望这本书能够不负众望。
—曹洪伟 渡鸦科技CTO


2014年加入京东后,负责重新设计详情页架构,它是一个读服务,从前端浏览器到后端存储无处不用缓存,在实战中通过运用大量缓存技术提升性能、解决棘手问题,比如618期间有人来刷你的接口,简单上个缓存,会起到很大的保护作用,而且效果非常好。在运用缓存时有许多需要注意的地方,比如缓存一致性是否需要强一致;价格库存数据能否缓存,缓存多久;缓存分布算法是使用一致性哈希还是取模算法;热点数据怎么处理;缓存崩溃与快速恢复等等。要用好缓存并不是那么容易的,希望读者看完本书后能学到一招半式并应用到实战中。
—张开涛 京东架构师


缓存在整个高并发架构设计中是重中之重的关键一笔,所以用好缓存是每次架构设计的必经之路。感谢右军邀请我参与本书。我在本书中介绍了同程旅游的凤凰缓存系统(phoenix)是如何云化管理同程全部的缓存集群,并治理各应用中的缓存使用的。也讲述了一些我们为何要开发phoenix来解决缓存问题的坑事。回首这些坑事,历历在目。各种困难、各种痛苦伴随着凤凰缓存系统从构想到多个版本的更新上线。希望本书能够给踩到同样坑事的读者带来帮助和快乐。
—王晓波 同程旅游首席架构师 


这里就不再复制右军的那篇《为了初心的纪念》了,这些伙伴的文字都能在书中看到。




同时,感谢各位同道的大力提携——


        本书围绕分布式缓存的基础概念、开源框架、应用案例三方面进行讲解,从理论到实战,循序渐进,深入浅出。看完部分章节后,意犹未尽,欲罢不能。国内基于真实应用案例的好书太少了,君泽以及他的朋友们做到了这一点,十分期待这本书能早日上市。
  —黄勇特赞科技CTO、《架构探险》作者


  分布式缓存,是任何一个互联网公司在成长过程中都会面临的技术难题。本书作者结合理论研究和长期的互联网行业从业经验,深入浅出地介绍了分布式系统理论和分布式缓存实战,给业界以借鉴和启发。本书是作者们的用心之作。
  —朱攀德比软件架构师


  缓存是软件性能优化的大杀器,分布式缓存是网站架构的必杀技,玩转缓存就玩转了网站架构的半边天。遗憾的是,目前市面上专门讲述分布式缓存的书籍不多,幸运的是本书就是一本这方面的专著。本书所有作者都是多年工作在网站架构一线的老司机,值得信赖,故将本书推荐给大家。
  —李智慧《大型网站技术架构:核心原理与案例分析》作者 


  从十几年前的Ehcache到最近几年流行的Redis,从CDN、浏览器、API Gateway到后端微服务,以及数据访问层的二级缓存,缓存无处不在。在体验为王、唯快不破的时代,分布式缓存是关键。本书从理论到实践,详细剖析了分布式缓存的实现原理以及应用案例,是一本接地气的好书。
  —李林锋华为PaaS平台架构师、公司总裁技术创新奖获得者


  随着现代应用对速度的要求越来越高,对缓存机制的使用也越来越常见、越来越频繁。本书以缓存机制的基本原理为开始,逐渐过渡至缓存系统的组建以及使用上面,全书分析和讲解了多个缓存系统,并列举了缓存的各种使用场景。如果你正准备构建自己的缓存系统,又或者你想进一步学习更多与缓存有关的知识,那么这本书将是你不容错过的一本书。
  —黄健宏《Redis设计与实现》作者


  在计算机的世界里,不论硬件层面还是软件层面,缓存都被广泛应用于解决处理响应慢的瓶颈。我们在构建微服务架构系统的时候也一样,缓存是提升性能的关键技术手段。然而,缓存在不同场景下的应用各有不同,要想用对缓存、用好缓存并不容易。本书针对不同的缓存类型、实现手段、算法策略做了非常细致的讲解,所以我推荐开发者和架构师们通过本书来对缓存做一次全面的学习,这有助于更好地使用缓存来优化我们的系统性能。
  —翟永超《Spring Cloud微服务实战》作者


  不同的存储介质,读写性能有很大的差异,价格亦是如此,性能越好的介质,价格就越高。把最常访问的数据放在读写性能最好的设备上,达到成本和性能的均衡,这便诞生了缓存。本书的几位作者都是大型分布式环境下历练出来的沙场老将,丰富的经验和翔实的案例,对于互联网行业的技术人员来说,颇有裨益。
  —陈康贤《大型分布式网站架构设计与实践》 作者、阿里巴巴技术专家 


  如今的软件系统,已经成为分布式系统的天下。分布式的语境对系统的设计与开发提出了完全不一样的挑战,作为提升性能的关键要素—缓存,自然也不例外。在缓存的命中、更新与失效,以及数据一致性保障等诸多方面,分布式缓存应用的复杂度可能是按指数级增加的,许多问题都是我们在单机应用上无法涉猎的。倘若没有分布式系统设计的实战经验,面对分布式缓存的诸多问题,我们将束手无策。求助于网络?讲解缓存知识的文章是片鳞半爪,未成体系,故而无法窥其全部。本书的几位作者都经历过大型软件系统的深度洗礼,书中内容都来自他们的一线实战。阅读本书,读者就能站在他们的肩膀上看得更远,实在是幸运!
  —张逸民航信息技术架构师、 《恰如其分的软件架构》译者


  缓存是当前互联网的基石,极大弥补了关系型数据库的天然缺陷。缓存技术也是每一个架构师的必修课,从最初的Memcached,到Redis及各种扩展架构,发展至今已经有些百花齐放的感觉。本书难得地进行了全面梳理,并附以在电商、社交、广告等典型场景下的大型应用。你值得拥有。
  —萧田国高效运维社区发起人、DevOpsDays中国联合发起人


  缓存是互联网架构中最关键的环节,本书作者在缓存的性能及高可用方面有丰富的经验,很高兴看到他们通过本书分享了多年的实践精华。 
  —杨卫华微博研发副总经理

.  互联网高性能系统设计的核心之一就是缓存系统的设计。本书集合了缓存理论、开源缓存系统、大规模业务中缓存的具体实践,全方位解读了分布式缓存设计,既能够帮助读者深入理解分布式缓存系统,又提供了很好的架构设计案例供参考,细细品读,受益良多!
  —李运华阿里游戏资深技术专家、 《面向对象葵花宝典》作者


正如Raven H 那样,这本书还没有现货,现在可以预售了:http://product.china-pub.com/7017945#ml


还有 京东的预售地址:https://item.jd.com/12276070.html



回归标题,当技术成为一种情怀,就一起来把情怀变成铅字吧,就像序言中写到的,为了初心的纪念。


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
7天前
|
缓存 运维 NoSQL
面试分享:Redis在大数据环境下的缓存策略与实践
【4月更文挑战第10天】探索Redis在大数据缓存的关键作用,本文分享面试经验及必备知识点。聚焦Redis数据结构(String、List、Set、Hash、Sorted Set)及其适用场景,缓存策略(LRU、LFU、TTL)与过期机制,集群和数据分片,以及性能优化和运维技巧。通过代码示例深入理解,助你面试成功,构建高效缓存服务。
26 4
|
5月前
|
存储 缓存 NoSQL
分布式系列教程(02) -分布式Redis缓存(简介&安装&基础)
分布式系列教程(02) -分布式Redis缓存(简介&安装&基础)
105 0
|
8月前
|
NoSQL Redis 数据库
Redis性能优化与高可用架构探究
本篇全面探讨了Redis的性能优化与高可用架构,为读者提供了深入了解如何使Redis在高负载环境下实现卓越性能和可靠性的实际操作示例。我们首先介绍了内存优化策略,通过设置最大使用内存和数据淘汰策略,有效地管理内存资源,提高系统性能。接着,详细讨论了数据淘汰机制,以LRU(最近最少使用)策略为例,说明了如何清理不常用的数据,保持系统稳定。
269 0
|
12月前
|
存储 缓存 NoSQL
高性能的本地缓存方案选型,看这篇就够了!
高性能的本地缓存方案选型,看这篇就够了!
22703 0
|
存储 缓存 NoSQL
【Redis技术干货】帮你从底层彻底吃透RDB技术原理(基础篇)
【Redis技术干货】帮你从底层彻底吃透RDB技术原理(基础篇)
182 0
【Redis技术干货】帮你从底层彻底吃透RDB技术原理(基础篇)
|
缓存 NoSQL 安全
【Redis技术干货】帮你从底层彻底吃透AOF技术原理(基础篇)
【Redis技术干货】帮你从底层彻底吃透AOF技术原理(基础篇)
222 0
【Redis技术干货】帮你从底层彻底吃透AOF技术原理(基础篇)
|
缓存 NoSQL 算法
【分布式技术专题】分布式缓存优化之初探布隆过滤器的使用指南
【分布式技术专题】分布式缓存优化之初探布隆过滤器的使用指南
207 0
【分布式技术专题】分布式缓存优化之初探布隆过滤器的使用指南
|
存储 NoSQL 算法
高并发核心技术Redis系列(三)--------基本知识(下)
在我们做站点流量统计的时候一般会统计页面UV(独立访客:unique visitor)和PV(即页面浏览量:page view)。
157 0
高并发核心技术Redis系列(三)--------基本知识(下)
|
存储 NoSQL Java