基本信息

编辑推荐
从开发、运维两个角度总结了Redis实战经验,深入浅出地剖析底层实现,包含大规模
集群开发与运维的实际案例、应用技巧。
全面覆盖Redis基本功能及应用,图示丰富,讲解细腻。
内容简介
作译者
张益军 搜狐视频资深研发工程师,CacheCloud项目联合创始人,曾就职于美团、阿里巴巴等公司。搜狐视频投放组负责人,目前从事投放平台、反作弊等系统的架构设计和优化工作。研究兴趣包括海量峰值访问、分布式存储等。微博号益军YJ, 博客地址是http://hot66hot.iteye.com。
目录
前 言
致 谢
第1章 初识Redis 1
1.1 盛赞Redis 1
1.2 Redis特性 2
1.3 Redis使用场景 5
1.3.1 Redis可以做什么 5
1.3.2 Redis不可以做什么 5
1.4 用好Redis的建议 6
1.5 正确安装并启动Redis 6
1.5.1 安装Redis 7
1.5.2 配置、启动、操作、关闭Redis 8
1.6 Redis重大版本 11
1.7 本章重点回顾 14
第2章 API的理解和使用 15
2.1 预备 15
2.1.1 全局命令 15
2.1.2 数据结构和内部编码 18
2.1.3 单线程架构 19
前言
本书关注了Redis开发运维的方方面面,尤其对于开发运维中如何提高效率、减少可能遇到的问题进行详细分析,但本书不单单介绍怎么解决这些问题,而是通过对Redis重要原理的解析,帮助开发运维人员学会找到问题的方法,以及理解背后的原理,从而让开发运维人员不仅知其然,而且知其所以然。
本书涵盖内容
第1章初识Redis,带领读者进入Redis的世界,了解它的前世今生、众多特性、应用场景、安装配置、简单使用,最后对Redis发展过程中的重要版本进行说明,可以让读者对Redis有一个全面的认识。
第2章API的理解和使用,全面介绍了Redis提供的5种数据结构字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(zset)的数据模型、常用命令、典型应用场景,并且每个小节都会给出在Redis开发过程可能要注意的坑和技巧。同时本章还会对Redis的单线程处理机制、键值管理做一个全面介绍,通过对这些原理的理解,读者可以在合适的应用场景选择合适的数据结构和命令进行开发,有效提高程序效率,降低可能产生的问题和隐患。
第3章小功能大用处,除了5种数据结构外,Redis还提供了诸如慢查询、Redis Shell、Pipeline、Lua脚本、Bitmaps、HyperLogLog、发布订阅、GEO等附加功能,在这些功能的帮助下,Redis的应用场景更加丰富。
第4章客户端,本章重点关注Redis客户端的开发,介绍了Redis的客户端通信协
议、详细讲解了Java客户端Jedis的使用技巧,同时通过从原理角度剖析在开发运维中,客户端的监控和管理技巧,最后给出客户端开发中常见问题以及案例讲解。
第5章持久化,Redis的持久化功能有效避免因进程退出造成的数据丢失问题,本章首先介绍RDB和AOF两种持久化配置和运行流程,其次对常见的持久化问题进行定位和优化,最后结合Redis常见的单机多实例部署场景进行优化。
第6章复制,在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他机器,用于故障恢复和负载均衡等需求,Redis也是如此。它为我们提供了复制(replication)功能,实现了多个相同数据的Redis副本。复制功能是高可用Redis的基础,后面章节的哨兵和集群都是在复制的基础上实现高可用。
第7章Redis的噩梦:阻塞,Redis是典型的单线程架构,所有的读写操作都在一条主线程中完成的。当Redis用于高并发场景时这条线程就变成了它的生命线。如果出现阻塞哪怕是很短时间对于我们的应用来说都是噩梦。导致阻塞问题的场景大致分为内在原因和外在原因,本章将进行详细分析。
第8章理解内存,Redis所有的数据存在于内存中,如何高效利用Redis内存变得非常重要。高效利用Redis内存首先需要理解Redis内存消耗在哪里,如何管理内存,最后再深入到如何优化内存。掌握这些知识后相信读者能够实现用更少的内存存储更多的数据从而降低成本。
第9章哨兵,Redis从2.8版本开始正式提供了Redis Sentinel,它有效解决了主从复制模式下故障转移的若干问题,为Redis提供了高可用功能。本章将一步步解析Redis Sentinel的相关概念、安装部署、配置、命令使用、原理解析,最后分析了Redis Sentinel运维中的一些问题。
第10章集群,是本书的重头戏,Redis Cluster是Redis 3提供的Redis分布式解决方案,有效解决了Redis分布式方面的需求,理解应用好Redis Cluster将极大的解放我们对分布式Redis的需求,同时它也是学习分布式存储的绝佳案例。本章将针对RedisCluster的数据分布,搭建集群,节点通信,请求路由,集群伸缩,故障转移等方面进行分析说明。
第11章缓存设计,缓存能够有效加速应用的读写速度,以及降低后端负载,对于开发人员进行日常应用的开发至关重要,但是将缓存加入应用架构后也会带来一些问题,本章将介绍缓存使用和设计中遇到的问题,具体包括:缓存的收益和成本、缓存更新策略、缓存粒度控制、穿透问题优化、无底洞问题优化、雪崩问题优化、热点key优化。
第12章开发运维的“陷阱”,介绍Redis开发运维中的一些棘手问题,具体包括:Linux配置优化、flush误操作数据恢复、如何让Redis变得安全、bigkey问题、热点key问题。
第13章Redis监控运维云平台CacheCloud,介绍笔者所在团队开源的Redis运维工具CacheCloud,它有效解决了Redis监控和运维中的一些问题,本章将按照快速部署、机器部署、接入应用、用户功能、运维功能多个维度全面的介绍CacheCloud,相信在它的帮助下,读者可以更好的监控和运维好Redis。
第14章Redis配置统计字典,会对Redis的系统状态信息以及全部配置做一个全面的梳理,希望本章能够成为Redis配置统计字典,协助大家分析和解决日常开发和运维中遇到的问题。
目标读者
本书深入浅出地介绍了Redis相关知识,因此可以作为Redis新手的入门教程,同时本书凝聚了两位笔者在Redis开发运维的多年经验,对于需要进一步提高Redis开发运维能力的读者也非常适合。读者可以参考下图,结合自身对于开发运维的需求进行阅读,但笔者依然建议读者对每一章都进行阅读。
序言
本书是作者近三年Redis开发运维的经验结晶和技术沉淀,书中对于Redis的相关知识做了系统全面的介绍,因此,可以帮助Redis初学者快速入门和提高。同时,纵观全书,作者的视角未局限于Redis本身,还融入了大量高并发系统的设计、开发及运维调优经验,而是深入浅出的剖析底层实现,让读者不仅知其然,也知其所以然。因此,对于有一定Redis使用经验的从业者,本书也有学习参考价值。
两位作者是搜狐视频的技术架构专家,始终保持对技术的热忱和严谨,对搜狐视频大型分布式系统的技术选型、架构设计、开发运维提供了坚实的保障。在承担搜狐视频个性化推荐系统等多个核心系统的设计开发运维工作期间,两位作者对高并发、低延时的大型分布式系统积累了丰富的经验,其中就包含了大量Redis的实践经验。作为公司开发运维的开拓者,从项目中抽离出Redis集群的自动运维系统CacheCloud,在公司内部多个业务线推广使用,积累了丰富的Redis大规模集群的运维优化经验。所在团队于2016年3月将该项目在GitHub上开源,由于其具有快速部署、全面监控、一键运维等特性,一开源即受到广大Redis开发运维人员的欢迎和认可。
以我对两位作者的优秀技术素养的熟知,及对他们负责项目的了解,我相信这本书会给大家带来耳目一新的感觉。感谢两位作者对开源项目CacheCloud的贡献,更难能可贵的是他们将其开发运维的宝贵经验汇聚成册,给我们带来了这样一本好书。
马义
搜狐视频产品技术中心总经理、56网总经理
2016年11月
媒体评论
我对本书第8章“理解内存”尤其关注,Redis是一个“准”内存数据库,理解内存才能更好地使用。作者对内存的介绍做到了深入浅出,讲清楚了重要的What、How。由于我从事分布式系统的开发,因此非常欣慰地看到写底层/infra领域的书籍,期待更多这方面的作品。写书是非常辛苦的,需要投入大量的时间,非常感谢两位作者艰苦卓绝的工作。
——刘奇,PingCAP CEO && TiDB/TiKV创始人,Codis联合作者
近几年,Redis风靡各大IT互联网公司分布式高并发系统。本书是付磊和张益军在几个大型项目中积累的Redis开发与运维的宝贵经验,既有原理功能使用详解,又有实际踩坑排雷经验分享,最后一章对开源项目CacheCloud作了详细的讲解,是Redis开发、运维人员值得收藏的好书。
——田文宝,搜狐视频技术总监
随着Redis变得越来越流行,如何有效地部署和运维Redis也变得日益重要起来。这本书不仅介绍了Redis的使用方法,更难能可贵的是,作者在书中把使用和维护Redis时经常会碰到的问题一一列举了出来,并给出了相应的解决方案。通过了解这些方案,读者可以有效地避免使用Redis时会遇到的一些陷阱,并学会如何更好地使用Redis。对于所有关心Redis运行效率和可靠性的开发者以及运维人员来说,这本书都是不容错过的。
——黄健宏,《Redis设计与实现》作者
Redis是目前最流行的kv存储。本书从Redis的客户端使用,到内部的实现原理,最后到运维,都给出翔实的解决方案,是Redis从入门到精通的一本好书。
——陈宗志,360基础架构组技术经理,pika作者
作者不仅详细地介绍Redis运维经验,而且深入浅出地剖析底层实现,让读者不仅知其然,也知其所以然。Redis的集群运维绝非是一件容易的事儿,读此书,可以少走一些弯路,绕过一些“坑”。
——张海雷,优酷土豆广告团队资深工程师
在大数据和移动互联网的时代,应对高并发、低延时的大型系统,Redis基本是标配组件。这本书涵盖Redis 3.x版本运维开发实战的各个方面,其中Redis集群、开发运维陷阱、缓存设计和CacheCloud章节尤为精彩,都是出自于付磊和张益军在搜狐视频一线运维开发Redis的宝贵实战经验。相信无论是DBA还是研发工程师都能从本书收获新的知识。
——卓汝林,小米高级DBA
DevOps文化盛行,开发和运维的界线越来越模糊,在Redis的实践中本书应运而生。本书通过Redis开发运维详实的介绍,结合真实项目凝聚最佳实战经验,值得细细品味。
——李成武,阿里巴巴技术专家