阿里P8资深架构师的项目经验总结:深入理解Redis(PDF)
前言
本书以由浅入深、由原理到应用场景的方式介绍了Redis这款NoSQL数据库产品。书中不仅细致地讲解了Redis中的数据结构及流行的使用模式,还针对Redis键的设计和管理,以及内存管理提出了建设性的方案。同时,作者深入Redis源码,将其内部构造通过源代码调试的方式进行呈现。
本书共分为10章:
第1章介绍了由Redis之父和主要维护者Salvatore Sanfilippo所阐明的Redis开发哲学。
第2章通过详细阐述和解释Redis数据结构和键管理为读者构建起Redis 的基础知识,其中包括了如何为应用程序构造既有意义又有表达力的键模式这一重要主题。
第3章讲解了Redis提供的用来优化应用程序内存使用的各种选项,其中包括了Redis支持的基于最近较少使用( LRU)的各种缓存和Redis中的键驱逐( evict)策略。
第4章是有关应用程序编程的高级主题。本章从概述Redis核心的C语言实现开始,通过对精心挑选的C代码片段进行深入地讲解来加深你对Redis的理解。然后讲到了如何使用三种不同的Redis客户端,并展示了分别使用Python、Node.js 和Haskell的编程示例。
第5章是有关应用程序编程的高级主题。本章从概述Redis服务器端Lua脚本及如何在Redis中更高效地使用Lua开始讲起。之后,拓展讲解了一些流行的Redis编程设计模式,列举了几个具体实例,描述了不同的个体和公司在运营操作中是如何使用这些模式的。本章最后从软件开发者的角度描述了Redis是如何应用于典型的DevOps场景中。
第6章探索了两个最近添加到Redis中的Redis集群和Redis Sentinel。 Redis Sentinel是一种特殊的高可用模式,用来监控主从服务器的健康状况,并能够在任意Redis主从实例故障时进行切换。之前提到的Redis集群现在可用于产品环境中了。对于那些太大而不能存人单台机器的大型数据来说,Redis集群能够通过运行多个实例并将键进行分片的方式来完成存储。虽然这些主题更关注运营方面,但是在采用Redis 的工程解决方案时至少应该知道Redis群集的好处和局限性。
第7章开始就承认了一件事,那就是对绝大多数组织来说,它们的信息技术栈包含了不同类型的数据和处理解决方案的异构混合。Redis 是一种用来扩展其他NoSQL数据存储选项的理想方式。同时,在本章中,我们将看到Redis是如何与MongoDB . ElasticSearch和Fedora Digital Repository 一起使用的。那些需要使用多种解决方案来开发并支持复杂业务需求的开发者和系统管理员会对本章的内容感兴趣。
第8章介绍了如何通过在Docker容器和镜像中使用Redis的方式来简化管理并提升基于Redis的解决方案的安全性和可靠性。Docker 是- -种开源容器技术,正快速地被许多企业采用。在那之后我们将研究在最为流行的计算云供应商上使用Redis所面临的具体挑战,这些供应商包括最大、最为成熟的Amazon Web Services. Google的Compute Engine 和Microsoft Azure,并特别提到了其他云服务供应商,例如Rackspace和Digital Ocean。本章最后会研究专门用于Redis的云服务。这些云服务专注于托管和管理Redis实例。
第9章一开始深入探索了Redis的发布/订阅命令。首先通过不同的示例展示了不同进程间、不同程序间、不同的Redis 客户端、不同的操作系统,以及远程计算机上的发布者和消费者是如何进行通信的。之后,将拓展Redis 的发布/订阅模式,并简要介绍将Redis用作企业计算生态中不同层之间的消息通信队列。本章最后会通过使用Redis和Celery作为任务管理和支持发布/订阅模式的消息通信队列这一详细示例总结提到的所有概念。
第10章在前面章节的基础上展示了Redis作为实时数据聚合器是如何将组织中来自各种技术系统的不同数据流聚合起来的。之后,将研究Redis安全模型和最新Redis版本新加人的安全特性。还有一-款基于 Web的运营仪表板将采用我们关于Redis客户端的知识,将输入到Redis中的数据进行可视化。接下来,将展示如何将机器学习算法(如朴索贝叶斯)应用到这些基于Redis 的信息流,以提供更为丰富的概况,并加深你对组织或者部门内发生的操作的理解。
小编准备把这份文档免费分享给粉丝朋友们,有想获取的:转发关注后,私信回复【Redis文档】即可