大家好,今天给大家介绍一下我的新书 —— 《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)发布书中部分章节内容,作为书的预览内容,欢迎大家查阅,谢谢。

京东链接
豆瓣链接

新书介绍 -- 《Redis核心原理与实践》相关推荐

  1. Redis核心原理与实践--事务实践与源码分析

    在Winform开发领域开发过十多年的项目中,见证着形形色色的架构和官方技术的应用,从最早类似Winform模式的WebForm技术,到接着的JQuery+界面组件,再到Asp.net Core的技术 ...

  2. Redis核心原理与应用实践

    Redis核心原理与应用实践 在很多场景下都会使用Redis,但是到了深层次的时候就了解的不是那么深刻,以至于在面试的时候经常会遇到卡壳的现象,学习知识要做到系统和深入,不要把Redis想象的过于复杂 ...

  3. redis核心原理与设计思想

    redis核心原理与设计思想 一.redis的5种基本数据结构 1.String(字符串) redis字符串扩容策略 2.list(列表) list常用命令 右边进左边出:队列 右边进右边出:栈 快速 ...

  4. 《机器学习观止-核心原理与实践》由清华大学出版社出版发行,感谢大家的支持!

    <机器学习观止--核心原理与实践> 京东: https://item.jd.com/13166960.html 当当:http://product.dangdang.com/2921827 ...

  5. JDK ThreadPoolExecutor核心原理与实践

    作者:vivo互联网服务器团队-Xu Weiteng 一.内容概括 本文内容主要围绕JDK中的ThreadPoolExecutor展开,首先描述了ThreadPoolExecutor的构造流程以及内部 ...

  6. 【Redis核心原理和应用实践】应用 7:一毛不拔 —— 漏斗限流

    漏斗限流是最常用的限流方法之一,顾名思义,这个算法的灵感源于漏斗(funnel)的结构. 漏斗的容量是有限的,如果将漏嘴堵住,然后一直往里面灌水,它就会变满,直至再也装不进去.如果将漏嘴放开,水就会往 ...

  7. 【Redis核心原理和应用实践】拓展 9:隔墙有耳 —— Redis 安全通信

    想象这样一个应用场景,公司有两个机房.因为一个紧急需求,需要跨机房读取 Redis 数据.应用部署在 A 机房,存储部署在 B 机房.如果使用普通 tcp 直接访问,因为跨机房所以传输数据会暴露在公网 ...

  8. 【Redis核心原理和应用实践】原理 8:有备无患 —— 主从同步

    很多企业都没有使用到 Redis 的集群,但是至少都做了主从.有了主从,当 master 挂掉的时候,运维让从库过来接管,服务就可以继续,否则 master 需要经过数据恢复和重启的过程,这就可能会拖 ...

  9. 【Redis核心原理和应用实践】应用 2:缓兵之计 —— 延时队列

    我们平时习惯于使用 Rabbitmq 和 Kafka 作为消息队列中间件,来给应用程序之间增加异步消息传递功能.这两个中间件都是专业的消息队列中间件,特性之多超出了大多数人的理解能力.  使用过 Ra ...

最新文章

  1. matlab cam orbit,如何在MATLAB中平滑旋转3D绘图?
  2. python使用matplotlib可视化堆叠的直方图(stacked histogram plot)、多个类别的数据在直方图区间层面累积堆叠起来
  3. css不换行属性_CSS强制不换行的whitespace:nowrap的坑,你会填么?
  4. torch 使用hdf5训练
  5. poj 1990 MooFest(转化成树状数组求和)
  6. 使用js对来判断一个字符串中括号是否平衡匹配
  7. OpenCV使用OpenPose dnn进行人或手姿势检测的实例(附完整代码)
  8. 进程隐藏与进程保护(SSDT Hook 实现)(一)
  9. CanalSharp-mysql数据库binlog的增量订阅消费组件Canal的.NET客户端
  10. Magento教程 2:Magento 社群版安装教学!
  11. 火车票售票系统mysql_今日开售!2020元旦火车票可以买了,春运首日车票也快了→...
  12. mysql数据库 主主的搭建
  13. 职场见闻录(01) - 怎样回答这两个问题?
  14. 如何快速搭建一个直播平台?
  15. 经典语录大全微信小程序源码下载多种分类语录
  16. HTML(一)静态登录注册页面附有完整网页(html+css+js)
  17. linux 设置u盘为只读模式,U盘如何设置为只读模式
  18. 如何参与到开源优测-积微速成计划任务
  19. 2021年中国纸包装行业发展现状及市场格局分析[图]
  20. 软件定义存储(SDS)之入门

热门文章

  1. 基于Pyramidbox实现的大规模人脸检测
  2. eclipse中创建jsp页面报错
  3. 在线打开 word、excel、pdf 文件
  4. 王坚终于坐不住了,关于AI我们都想错了
  5. 20P46 Premiere预设800种干扰缩放平移旋转分割拉伸全景透视扭曲炫光视频无缝转场
  6. R语言入门教程知识 第一章 R语言
  7. ant-design-vue 自由切换 暗黑模式dark
  8. 深度学习目标检测最全综述
  9. Oracle之字符串去重统计
  10. CRM的终点是CSM(客户成功)