共计 2188 个字符,预计需要花费 6 分钟才能阅读完成。
大家好,明天给大家介绍一下我的新书 ——《Redis 外围原理与实际》。
后端开发的同学应该对 Redis 都不生疏,Redis 因为性能极高、功能强大,已成为业界十分风行的内存数据库。
《Redis 外围原理与实际》这本书深刻地剖析了 Redis 罕用个性的外部机制与实现形式,大部分内容源自对 Redis 源码的剖析,并从中总结出实现原理。通过浏览本书,读者能够疾速、轻松地理解 Redis 的外部运行机制。
为什么写这本书?
我始终心愿从源码层面深入分析一个 C 语言实现的分布式系统程序。起因如下:
(1)C 语言能够说是最靠近低级语言的开发语言,剖析 C 语言程序,能够让咱们更深刻了解操作系统底层常识。
(2)随着互联网行业倒退,对后端系统高可用,高性能的要求越来越高,分布式系统也越来越风行。剖析一个分布式系统的设计与实现,对咱们的工作、学习都有很大帮忙。
于是,我便浏览学习了 Redis 源码,并编写了《Redis 外围原理与实际》这本书。
为什么抉择 Redis 呢?因为 Redis 是一个典型的“小而美”的程序。
Redis 实现简略,源码十分优雅简洁,浏览起来并不吃力,而且 Redis 功能齐全,涵盖了数据存储,分布式,音讯流等泛滥个性,十分值得深刻学习。
通过写作这本书,我对 Redis,Unix 编程,分布式系统、存储系统都有了更进一层的了解,再学习其余相干的零碎(如 Mysql、Nginx,Kafka),也能够触类旁通,举一反三。心愿这本书也能够帮忙读者百尺竿头,更进一步。
本书构造
第一局部次要剖析了 Redis 中字符串、散列、列表、汇合,有序汇合这五种数据类型的编码格局。
编码格局,即数据的存储格局,对于数据库,数据的存储格局至关重要,如关系型数据库的行式存储和列式存储。而 Redis 作为内存数据库,对于数据编码的总体设计思维是:最大限度的“以工夫换空间”,从而最大限度地节俭内存。
这一部分内容详细分析了 Redis 对内存的应用如何达到“斤斤计较”的水平。
第二局部剖析了 Redis 的外围流程,包含 Redis 事件机制与命令执行过程。
Redis 利用 IO 复用模型,实现了本人的事件循环机制,而 Redis 正在由该事件机制驱动运行(很多近程服务程序都是应用相似的架构,如 Nginx,Mysql 等)。
Redis 事件机制设计优雅,实现简略,并且性能卓越,能够说是“化繁为简”。
第三局部剖析了 Redis 长久化与复制机制。尽管 Redis 是内存数据库,但依然最大限度保障的数据的可靠性。
不论是文件长久化,还是从节点复制,核心思想都是一样的,通过将数据复制到多个正本中,从而放弃数据安全。
这部分内容分析了 RDB、AOF 长久化机制,主从节点复制流程等内容,向读者展现了 Redis 数据是如何“不翼而飞”的。
第四局部剖析了 Redis 分布式架构。这部分内容从风行的分布式算法 Raft 算法登程,剖析 Sentient 如何监控节点,Cluster 集群如何实现数据分片,反对动静新增、删除集群节点,以及它们的“拿手好戏 ”——故障转移。
分布式系统经常让我联想到一个乏味的词,铁索连舟(将集群节点设想为”舟“,节点之间的网络连接设想为”索“)。
第五局部剖析了 Redis 中的高级个性,包含 Redis 事务、非阻塞删除、ACL 权限管制列表、Tracking 机制、Lua 脚本、Module 模块、Stream 音讯流等内容,并且提供了具体的应用案例,帮忙读者循序渐进,由浅到深地进行学习了解。
Redis 为各种高性能,高可用场景提供了十分全面的反对,能够说是”无所不包“。
本书特点
本书深入分析 Redis 实现原理,并不是 Redis 入门书。为了尽量升高本书浏览难度,本书总结了 Redis 各外围性能的实现机制,提取 Redis 外围代码(本书会尽量避免沉积代码),并以适量图文,对 Redis 源码以及实现原理进行详细分析,向读者展现 Redis 外围性能的设计思维,实现流程。
本书尽管大部分内容基于 Redis 源码剖析,然而并不简单,即便你只是简略理解 C 语言的根底语法,也能够轻松读懂。
举荐理由
- 新版本:基于 Redis 6.0.9,并剖析了 Redis 新个性,如 Redis 6 的 ACL、Tracking、IO 线程等机制。
- 重实际:本书在对应知识点的根底上提供了具体的利用示例,帮忙读者由浅到深地学习和了解 Redis 新个性。
- 易把握:本书总结了 Redis 各个外围性能的实现原理,并以适量图文、丰盛示例,对 Redis 源码及其实现原理进行详细分析,循序渐进地向读者展现 Redis 外围性能的设计思维和实现流程。读者也能够联合本书,自行浏览 Redis 源码。
- 内容丰盛:本书不仅剖析了 Redis 的性能,还由 Redis 源码延展了如下两方面内容:
(1)具体介绍 Redis 中应用到的 Unix 机制,包含 Unix 网络编程、过程(线程)的利用等内容,并通过源码展现 Redis 如何应用这些 Unix 机制。
(2)深入分析 Redis 如何实现一个分布式系统,次要是 Sentinel、Cluster 机制如何实现一个高可用的分布式系统。
因为我能力无限,书中不免有脱漏或谬误,若您在浏览本书的过程中有任何问题或者倡议,欢送大家沟通交流。我会对您提出的问题、倡议进行梳理与反馈,并在本书后续版本中及时做出勘误与更新。
通过本书编辑批准,我后续会在集体技术公众号(binecy)公布书中局部章节内容,作为书的预览内容,欢送大家查阅,谢谢。
京东链接
豆瓣链接