作品简介
本书全面讲解Redis基本功能及其应用,并结合线上开发与运维监控中的实际使用案例,深入分析并总结了实际开发运维中遇到的“陷阱”,以及背后的原因, 包含大规模集群开发与管理的场景、应用案例与开发技巧,为高效开发运维提供了大量实际经验和建议。本书不要求读者有任何Redis使用经验,对入门与进阶DevOps的开发者提供有价值的帮助。主要内容包括:Redis的安装配置、API、各种高效功能、客户端、持久化、复制、高可用、内存、哨兵、集群、缓存设计等,Redis高可用集群解决方案,Redis设计和使用中的问题,最后提供了一个开源工具:Redis监控运维云平台CacheCloud。
付磊,搜狐视频高级研发工程师,CacheCloud项目联合创始人。拥有多年Redis开发运维经验,为公司多个核心业务提供Redis服务,同时热衷于技术传播和分享,撰写了大量关于Redis开发运维的技术文章。
张益军,搜狐视频资深研发工程师,CacheCloud项目联合创始人,曾就职于美团、阿里巴巴等公司。搜狐视频投放组负责人,目前从事投放平台、反作弊等系统的架构设计和优化工作。研究兴趣包括海量峰值访问、分布式存储等。
作品目录
对本书的赞誉
序言
前言
致谢
第1章 初识Redis
1.1 盛赞Redis
1.2 Redis特性
1.3 Redis使用场景
1.4 用好Redis的建议
1.5 正确安装并启动Redis
1.6 Redis重大版本
1.7 本章重点回顾
第2章 API的理解和使用
2.1 预备
2.2 字符串
2.3 哈希
2.4 列表
2.5 集合
2.6 有序集合
2.7 键管理
2.8 本章重点回顾
第3章 小功能大用处
3.1 慢查询分析
3.2 Redis Shell
3.3 Pipeline
3.4 事务与Lua
3.5 Bitmaps
3.6 HyperLogLog
3.7 发布订阅
3.8 GEO
3.9 本章重点回顾
第4章 客户端
4.1 客户端通信协议
4.2 Java客户端Jedis
4.3 Python客户端redis-py
4.4 客户端管理
4.5 客户端常见异常
4.6 客户端案例分析
4.7 本章重点回顾
第5章 持久化
5.1 RDB
5.2 AOF
5.3 问题定位与优化
5.4 多实例部署
5.5 本章重点回顾
第6章 复制
6.1 配置
6.2 拓扑
6.3 原理
6.4 开发与运维中的问题
6.5 本章重点回顾
第7章 Redis的噩梦:阻塞
7.1 发现阻塞
7.2 内在原因
7.3 外在原因
7.4 本章重点回顾
第8章 理解内存
8.1 内存消耗
8.2 内存管理
8.3 内存优化
8.4 本章重点回顾
第9章 哨兵
9.1 基本概念
9.2 安装和部署
9.3 API
9.4 客户端连接
9.5 实现原理
9.6 开发与运维中的问题
9.7 本章重点回顾
第10章 集群
10.1 数据分布
10.2 搭建集群
10.3 节点通信
10.4 集群伸缩
10.5 请求路由
10.6 故障转移
10.7 集群运维
10.8 本章重点回顾
第11章 缓存设计
11.1 缓存的收益和成本
11.2 缓存更新策略
11.3 缓存粒度控制
11.4 穿透优化
11.5 无底洞优化
11.6 雪崩优化
11.7 热点key重建优化
11.8 本章重点回顾
第12章 开发运维的“陷阱”
12.1 Linux配置优化
12.2 flushall/flushdb误操作
12.3 安全的Redis
12.4 处理bigkey
12.5 寻找热点key
12.6 本章重点回顾
第13章 Redis监控运维云平台CacheCloud
13.1 CacheCloud是什么
13.2 快速部署
13.3 机器部署
13.4 接入应用
13.5 用户功能
13.6 运维功能
13.7 客户端上报
13.8 本章重点回顾
第14章 Redis配置统计字典
14.1 info系统状态说明
14.2 standalone配置说明和分析
14.3 Sentinel配置说明和分析
14.4 Cluster配置说明和分析
载入中