书海网短评:
适读人群:本书通过可实战的80多个案例全面系统地讲解了Redis技术应用,适合所有对Redis感兴趣的开发与运维人员阅读和参考。1.作为一个流行的key-value内存数据存储,Redis由于其性能高、数据类型丰富、
1.作为一个流行的key-value内存数据存储,Redis由于其性能高、数据类型丰富、API功能强大、可用性高及架构可伸缩等特点,被称为后端的“瑞士军刀”,值得每一位开发人员学习。
2.Redis4.0发布后,引入了许多重大的变化和功能。《Redis 4.x Cookbook中文版》是目前市场上版本较新的Redis书,涵盖了所有Redis4.x的新特性,80多个设计、开发与运维的可完整运行的优化方案和案例!
3.《Redis 4.x Cookbook中文版》作者是中国的Redis贡献者以及美国硅谷大型互联网公司工程师,译者也是一线开发者,书中案例全部来自于他们真实的工作场景,解决方案也是他们企业级开发运维工作经验的总结,含金量超高。
4.《Redis 4.x Cookbook中文版》语言精练、内容丰富、翻译得当通顺,阅读和学习《Redis 4.x Cookbook中文版》,将是一件非常轻松的事。
Redis是一个十分热门的内存数据库,号称后端的“瑞士军刀”,它拥有诸多优良特性,已经被越来越多的公司采用,值得每一位开发者学习。通过《Redis4.xCookbook中文版名》讲述的Redis在设计、开发和运维等方面的80多个实战案例,读者不仅可以由浅入深地学到有关Redis的几乎所有知识,还可以将案例中所讲解的内容直接用于包括设计、开发和运维等在内的各类生产实践。《Redis4.xCookbook中文版名》中的每一个案例、每一个案例中所涉及的各种知识、命令和工具等,均来自作者一线企业级应用的总结;《Redis 4.x Cookbook中文版》中总结的各类参数配置和故障诊断的案例等,也均来自作者真实企业级运维工作的经验。
《Redis4.xCookbook中文版名》通过可实战的80多个案例全面系统地讲解了Redis技术应用,适合所有对Redis感兴趣的开发与运维人员阅读和参考。
黄鹏程,过去五年多一直在中国民生银行(2017年在世界排名前1000名的银行中位列29位)担任软件工程师及大数据基础设施团队的负责人,负责为整家银行提供大数据基础设施服务。同时,作为这家银行的Redis技术负责人,他将大部分精力投入到了在生产环境中如何更好地使用Redis中。此外,他也是一名Redis贡献者。
王左非,是一名居住在美国旧金山湾区的经验丰富的软件工程师。他有5年多的软件行业经验,曾参与过涉及很多不同技术的项目,目前在爱彼迎(Airbnb)工作。左非乐于学习新事物和分享知识,还喜欢在闲暇之余读书、旅行和捣鼓无线电。
译者简介
梅隆魁,2013年硕士毕业于北京邮电大学计算机科学与技术专业嵌入式系统与网络通信方向。毕业后就职于中国民生银行总行信息科技部,主要从事J2EE企业级及分布式系统的应用和架构设计开发及项目管理工作,业余对嵌入式软硬件、移动应用开发及Android移动安全也有所涉猎,是一名“会画圆”且“能画圆”的工程师。
第1章开始使用Redis
1.1本章概要
1.2下载和安装Redis
1.3启动和停止Redis
1.4使用redis-cli连接到Redis
1.5获取服务器信息.
1.6理解Redis事件模型
1.7理解Redis通信协议
第2章数据类型
2.1本章概要
2.2使用字符串(string)类型
2.3使用列表(list)类型
2.4使用哈希(hash)类型
2.5使用集合(set)类型
2.6使用有序集合(sortedset)类型
2.7使用HyperLogLog类型.
2.8使用Geo类型.
2.9键管理
第3章数据特性
3.1本章概要
3.2使用位图(bitmap)
3.3设置键的过期时间
3.4使用SORT命令
3.5使用管道(pipeline)
3.6理解Redis事务(transaction)
3.7使用发布订阅(PubSub)
3.8使用Lua脚本
3.9调试Lua脚本
第4章使用Redis进行开发
4.1本章概要
4.2Redis常见应用场景
4.3使用正确的数据类型
4.4使用正确的API.
4.5使用Java连接到Redis
4.6使用Python连接到Redis
4.7使用SpringData连接到Redis
4.8使用Redis编写MapReduce作业
4.9使用Redis编写Spark作业
第5章复制
5.1本章概要
5.2配置Redis的复制机制
5.3复制机制的调优
5.4复制机制的故障诊断
第6章持久化
6.1本章概要
6.2使用RDB
6.3探究RDB文件
6.4使用AOF
6.5探究AOF文件
6.6RDB和AOF的结合使用.
第7章配置高可用和集群
7.1本章概要
7.2配置Sentinel
7.3测试Sentinel
7.4管理Sentinel
7.5配置RedisCluster
7.6测试RedisCluster
7.7管理RedisCluster
第8章生产环境部署
8.1本章概要
8.2在Linux上部署Redis
8.3Redis安全相关设置
8.4配置客户端连接选项
8.5配置内存策略
8.6基准测试
8.7日志
第9章管理Redis
9.1本章概要
9.2管理Redis服务器配置
9.3使用bin/redis-cli操作Redis
9.4备份和恢复
9.5监控内存使用情况
9.6管理客户端
9.7数据迁移
第10章Redis的故障诊断
10.1本章概要
10.2Redis的健康检查
10.3使用SLOWLOG识别慢查询
10.4延迟问题的故障诊断
10.5内存问题的故障诊断
10.6崩溃问题的故障诊断
第11章使用Redis模块扩展Redis
11.1本章概要.
11.2加载Redis模块
11.3编写Redis模块
第12章Redis生态系统
12.1本章概要
12.2Redisson客户端
12.3Twemproxy
12.4Codis—一个基于代理的高性能Redis集群解决方案
12.5CacheCloud管理系统
12.6Pika—一个与Redis兼容的NoSQL数据库
附录AWindows环境搭建
Redis作为一个流行的key-value内存数据存储,由于性能高、数据类型丰富、API功能强大、可用性高及架构可伸缩等特点,最近受到了越来越多的关注。自2017年以来,Redis已经成功地在DB-Engine数据库排行榜(DB-EngineCompleteRanking)中排到了9/10。在那之前,Redis甚至还占据过DB-Engine键值存储分类榜单的第一名相当长一段时间。从早期的2.x版本到最新的4.x版本,Redis引入了很多优秀的特性来帮助希望在业务场景中交付低延迟服务的用户。
《Redis4.xCookbook中文版》基于最新的Redis4.x版本,向读者提供了深入浅出的实战案例和相关的背景知识。《Redis 4.x Cookbook中文版》涵盖了Redis的几乎所有方面,从Redis基本数据类型,一直到诸如高可用、集群化、管理和故障诊断等高级主题。
基于实践是最好的老师(Learningbydoingisthebestapproach)的理念,《Redis 4.x Cookbook中文版》的作者不遗余力地通过真实的用例向读者呈现有关Redis的知识。换句话说,《Redis 4.x Cookbook中文版》为许多常见的开发和维护问题提供了开箱即用的解决方案。即便是在读者的个人计算机上,只要遵循《Redis 4.x Cookbook中文版》操作步骤小节中的步骤,读者都能够很容易地理解每一个实战案例的关键点。此外,仅仅知道如何使用Redis达成工作目标是不够的;工作原理小节对读者在某项任务中所执行的步骤进行了解释性的说明。在更多细节小节中,《Redis 4.x Cookbook中文版》还提供了有关Redis内部工作原理的相关基本信息和必要的解释。读者越是了解Redis的工作原理,就越能对工程中所涉及的权衡作出明智的决定。每一个实战案例都是按照上述的方式组织的。
最后,我们希望《Redis 4.x Cookbook中文版》能让读者更好地了解Redis,并让读者在自己的场景中使用Redis时能够学到更多的最佳实践。
0.1预期读者
《Redis 4.x Cookbook中文版》面向的是希望开始使用Redis或加深对其认知的开发人员、架构师和DBA。如果读者想使用Redis设计高性能、可伸缩的数据库解决方案,那么《Redis 4.x Cookbook中文版》将通过各种各样的实战案例来引领读者全面深入地了解Redis。《Redis 4.x Cookbook中文版》对于寻求日常运维Redis工作中所碰到的常见问题解决方案的DBA而言同样有用。《Redis 4.x Cookbook中文版》涵盖了使用Redis所涉及的所有方面,并为Redis的日常使用提供了全方位的解决方案和技巧提示。尽管要充分利用《Redis 4.x Cookbook中文版》需要对Redis有一些基本的理解,但也并不是必需的。
0.2主要内容
第1章,开始使用Redis,主要涉及Redis服务器端的安装和基本操作,包括启动和停止Redis服务器、使用redis-cli连接到Redis和获取服务器信息。在本章的最后,还介绍了Redis事件模型和Redis通信协议。
第2章,数据类型,主要涉及Redis的数据类型和操作数据类型的常见API命令。本章介绍了Redis4.x版本中支持的所有数据类型(字符串string、列表list、哈希hash、集合set、有序集合sortedset、HyperLogLog和Geo)。本章还讨论了基本的Redis键管理。
第3章,数据特性,主要涉及一些有用的Redis特性,这些特性使操作数据变得更加容易。本章首先展示了如何使用位图(bitmap)、SORT命令和设置键的过期时间。之后,向读者介绍了Redis的三个重要功能:管道(pipeline)、事务(transaction)和发布订阅(PubSub)。在本章的最后,我们演示了如何在Redis中编写和调试Lua脚本。
第4章,使用Redis进行开发,演示了如何使用Redis开发应用程序。首先,本章讨论了Redis的使用场景和数据类型及API的选择。之后,本章展示了使用Redis客户端库Jedis和redis-py开发Java和Python应用程序的示例。最后,《Redis 4.x Cookbook中文版》介绍了在SpringFramework中使用Redis及在MapReduce/Spark作业中使用Redis的例子。
第5章,复制(Replication),主要涉及Redis的复制机制。本章展示了如何配置Redis从实例并解释了Redis主从复制的工作原理。然后,本章对Redis调优及主从复制相关的故障排除主题进行了讨论。
第6章,持久化(Persistence),介绍了Redis中的两种持久化方式:RDB和AOF。本章展示了如何在Redis中启用RDB和AOF来实现持久化,并解释了持久化的工作原理。本章还讨论了RDB和AOF之间的区别,以及如何将这两种方式结合起来使用。
第7章,配置高可用和集群(Cluster),主要涉及Redis的高可用相关架构。本章演示了如何配置RedisSentinel和RedisCluster,并通过几个实验对RedisSentinel和RedisCluster的工作原理进行了解释。
第8章,生产环境部署,讨论了在生产环境中部署Redis时所要注意的事项。本章首先讨论了操作系统、网络和安全方面的考虑;之后,涉及了配置调整和日志两个主题,也对LRU策略进行了讨论。最后,本章还讨论了Redis的性能/压力测试。
第9章,管理Redis,主要涉及各种Redis的管理任务,包括更新服务器配置、使用redis-cli、
备份和恢复数据、管理内存使用、管理客户端和数据迁移等。
第10章,故障诊断,主要涉及几个有关排除Redis故障的实例。本章涵盖了使用慢日志来定位慢查询的例子,还演示了排除延迟、内存和进程崩溃等常见故障的案例。
第11章,通过模块扩展Redis,讨论了如何使用Redis模块来扩展Redis的功能。本章讲解了Redis模块的工作原理,并演示了如何使用Redis模块SDK来构建Redis模块。
第12章,Redis生态环境,讲解了Redis的第三方组件,还简要地介绍了几个流行的工具、客户端和代理。
附录A,Windows环境搭建,介绍了如何在Windows环境中运行Redis。
0.3如何更好地使用《Redis 4.x Cookbook中文版》
《Redis 4.x Cookbook中文版》中所有的例子都是在Redis4.x上运行的。Linux环境是首选,但也支持macOSX。如果读者使用的是Windows操作系统,那么建议在VirtualBox或VMware中安装和运行一个Linux操作系统。此外,要运行代码示例还需要JDK1.8+及Python2.7+或Python3.4+。
0.3.1下载示例代码
轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达《Redis 4.x Cookbook中文版》页面。
?下载资源:《Redis 4.x Cookbook中文版》如提供示例代码及资源文件,均可在下载资源处下载。
?提交勘误:您对书中内容的修改意见可在提交勘误处提交,若被采纳,将获赠博文视点社
区积分(在您购买电子书时,积分可用来抵扣相应金额)。
?交流互动:在页面下方读者评论处留下您的疑问或观点,与我们和其他读者一同学习交流。
页面入口:http://www.broadview.com.cn/34081
《Redis 4.x Cookbook中文版》的示例代码包也同样托管在GitHub上,链接为https://github.com/PacktPublishing/Redis-4.x-
Cookbook。如果示例代码在《Redis 4.x Cookbook中文版》出版后还有更新,那么将会更新到上述链接对应的GitHub库中。
在https://github.com/PacktPublishing上还有其他的代码及视频等资料。请读者自行查看!
0.3.2下载彩色配图
《Redis 4.x Cookbook中文版》还提供了一个PDF文件,该文件中包括了《Redis 4.x Cookbook中文版》中所用截屏/图表的彩色图像。读者可以从以下链接下载:http://www.packtpub.com/sites/default/files/downloads/Redis4xCookbook_ColorImages.pdf。
0.3.3惯例
《Redis 4.x Cookbook中文版》中有一些行文的惯例。
文本中的代码:表示文本中的代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、占
位URL和用户输入。例如:“打开一个终端并使用redis-cli连接到Redis”。
一段代码形如:
foriin`seq10`
do
nohupnodegenerator.jshash1000000session:${i}&
done
所有的命令行输入或输出都遵循如下的格式:
127.0.0.1:6379>SETBIT"users_tried_reservation"1001
(integer)0
粗体:表示一个新术语、一个重要的词或读者在屏幕上所看到的单词。例如,菜单或对话框中的单词。举一个例子:“点击ImportProjectfromSources,然后在coding目录中选择redis-4.0.1子目录”。
0.4小节
在《Redis 4.x Cookbook中文版》中,读者会发现几个经常出现的标题(准备工作、操作步骤、工作原理、更多细节和相
关内容)。为了清晰地理解每一个实战案例,请按照如下的方式阅读每一小节。
0.4.1准备工作
本节主要包括相应实战案例的主要内容,并描述了相应实战案例所需的软件和预先配置。
0.4.2操作步骤
本节包含了完成相应实战案例所需的步骤。
0.4.3工作原理
本节通常包括对上一节所发生的事情的详细解释。
0.4.4更多细节
本节包含关于实战案例的额外信息,以便加深读者对实战案例的了解。
0.4.5相关内容
本节提供了关于实战案例的其他有用信息的有用链接。









