声明:
原定书名《Redis3开发运维最佳实践》改为《Redis开发与运维》,因为根据最新的广告法,书名不允许有最字。
一、图书简介
本人和同事撰写的新书《Redis开发与运维》近期已经截稿,本书重点关注Redis开发运维中方方面面的问题,作者是来自搜狐视频一线的Redis开发和运维工程师-付磊和张益军。2016年3月,作者所在团队开源了Redis的私有云平台CacheCloud。
本书预计2017年2月中旬,由机械工业出版社(华章图书)出版,全书大概400页左右,后续会公布一些样章,欢迎加入qq讨论群:534429768。
本书目录如下:
- 第1章 Redis初识
- 第2章 API理解和使用
- 第3章 小功能大用处
- 第4章 客户端
- 第5章 持久化
- 第6章 复制
- 第7章 Redis的噩梦:阻塞
- 第8章 理解内存
- 第9章 哨兵
- 第10章 集群
- 第11章 缓存设计
- 第12章 开发运维“陷阱”
- 第13章 Redis监控运维云平台CacheCloud
- 第14章 Redis配置统计字典
二、完整目录
第1章 Redis初识
- 1.1 盛赞Redis
- 1.2 Redis特性
- 1.3 Redis使用场景
- 1.3.1 Redis可以做什么
- 1.3.2 Redis不可以做什么
- 1.4 用好Redis的建议
- 1.5 正确安装启动Redis
- 1.5.1 安装Redis
- 1.5.2 配置、启动、操作、关闭Redis
- 1.6 Redis重大版本
- 1.7 重点回顾
第2章 API理解和使用
- 2.1 预备
- 2.1.1 全局命令
- 2.1.2 数据结构和内部编码
- 2.1.3 单线程架构
- 2.2 字符串
- 2.3 哈希
- 2.4 列表
- 2.5 集合
- 2.6 有序集合
- 2.7 键管理
- 2.7.1 单个键管理
- 2.7.2 遍历键
- 2.7.3 数据库管理
- 2.8 重点回顾
第3章 小功能大用处
- 3.1 慢查询分析
- 3.2 Redis Shell
- 3.2.1 redis-cli
- 3.2.2 redis-server详解
- 3.2.3 redis-benchmark详解
- 3.3 pipeline
- 3.4 Lua
- 3.4.1 Lua用法简述
- 3.4.2 Redis与Lua
- 3.4.3 案例
- 3.4.4 Redis如何管理Lua脚本
- 3.5 Bitmaps
- 3.6 HyperLogLog
- 3.7 发布订阅
- 3.8 GEO
- 3.9 重点回顾
第4章 客户端
- 4.1 客户端通信协议
- 4.1.1 客户端协议
- 4.1.2 协议格式
- 4.2 Java客户端-Jedis
- 4.2.1 获取Jedis
- 4.2.2 Jedis的基本使用
- 4.2.3 Jedis连接池使用
- 4.2.4 Redis中pipeline使用
- 4.2.5 Jedis的lua脚本使用
- 4.3.Python客户端-redis-py
- 4.3.1 获取redis-py
- 4.3.2 redis-py的基本使用
- 4.3.3 redis-py中pipeline使用
- 4.3.4 redis-py中的lua脚本使用
- 4.4 客户端管理
- 4.4.1 客户端API
- 4.4.2 客户端相关配置
- 4.4.3 客户端统计片段
- 4.5 客户端常见异常
- 4.5.1 无法从连接池获取到连接
- 4.5.2 客户端读写超时
- 4.5.3 客户端连接超时
- 4.5.4 客户端缓冲区异常
- 4.5.5 Lua脚本正在执行
- 4.5.6 Redis正在加载持久化文件
- 4.5.7 Redis使用的内存超过maxmemory配置
- 4.5.8 客户端连接数过大
- 4.6 客户端案例分析
- 4.6.1 Redis内存陡增
- 4.6.2 客户端周期性的connect timeout
- 4.7 重点回顾
第5章 持久化
- 5.1 RDB 168
- 5.1.1 触发机制
- 5.1.2 流程说明
- 5.1.3 RDB文件的处理
- 5.1.4 RDB的优缺点
- 5.2 AOF
- 5.2.1 使用AOF
- 5.2.2 命令写入
- 5.2.3 文件同步
- 5.2.4 重写机制
- 5.2.5 重启加载
- 5.2.6 文件校验
- 5.3 问题定位与优化
- 5.3.1 fork操作
- 5.3.2 子进程开销监控和优化
- 5.3.3 AOF追加阻塞
- 5.4 多实例部署
- 5.5 重点回顾
第6章 复制
- 6.1 配置
- 6.1.1 建立复制
- 6.1.2 断开复制
- 6.1.3 安全性
- 6.1.4 只读
- 6.1.5 传输延迟
- 6.2 拓扑
- 6.2.1 三种拓扑结构
- 6.3 原理
- 6.4.1 复制过程
- 6.4.2 数据同步
- 6.4.3 全量复制
- 6.4.4 部分复制
- 6.4.5 心跳
- 6.4.6 异步复制
- 6.5 开发运维
- 6.5.1 读写分离
- 6.5.2 主从配置不一致
- 6.5.3 规避全量复制
- 6.5.4 规避复制风暴
- 6.6 重点回顾
第7章 Redis的噩梦:阻塞
- 7.1 发现阻塞
- 7.2 内在原因
- 7.2.1 API或数据结构使用不合理
- 7.2.2 CPU饱和
- 7.2.3 持久化阻塞
- 7.3 外在原因
- 7.3.1 CPU竞争
- 7.3.2 内存交换
- 7.3.3 网络原因
- 7.4 本章重点回顾
第8章 理解内存
- 8.1 内存消耗
- 8.1.1 内存使用统计
- 8.1.2 内存消耗划分
- 8.1.3 子进程内存消耗
- 8.2 内存管理
- 8.2.1 内存上限
- 8.2.2 动态调整内存上限
- 8.2.3 内存回收策略
- 8.3 内存优化
- 8.3.1 redisObject对象
- 8.3.2 缩减键值对象
- 8.3.3 共享对象池
- 8.3.4 字符串优化
- 8.3.5 编码优化
- 8.3.6 控制key的数量
- 8.4 本章重点回顾
第9章 哨兵
- 9.1 基本概念
- 9.1.1 主从复制的问题
- 9.1.2 高可用
- 9.1.3 Redis Sentinel
- 9.2 安装和部署
- 9.2.1部署拓扑结构
- 9.2.2 部署Redis数据节点
- 9.2.3 部署Sentinel节点
- 9.2.4 配置优化
- 9.2.5 部署技巧
- 9.3 API
- 9.4 客户端连接
- 9.4.1 Redis Sentinel的客户端
- 9.4.2 Redis Sentinel客户端基本实现原理
- 9.4.3 Java操作Redis Sentinel
- 9.5 实现原理
- 9.5.1 三个定时监控任务
- 9.5.2 主观下线和客观下线
- 9.5.3 领导者Sentinel节点选举
- 9.5.4 故障转移
- 9.6 开发与运维
- 9.6.1 故障转移日志分析
- 9.6.2 节点运维
- 9.6.3 高可用读写分离
- 9.7 重点回顾
第10章 集群
- 10.1 数据分布
- 10.1.1 数据分布理论
- 10.1.2 Redis数据分区
- 10.1.3 集群功能限制
- 10.2 搭建集群
- 10.2.1 准备节点
- 10.2.2 节点握手
- 10.2.3 分配槽
- 10.2.4 redis-trib.rb搭建集群
- 10.3 节点通信
- 10.3.1 通信流程
- 10.3.2 Gossip消息
- 10.3.3 节点选择
- 10.4 集群伸缩
- 10.4.1 伸缩原理
- 10.4.2 扩容集群
- 10.4.3 收缩集群
- 10.5 请求路由
- 10.5.1 请求重定向
- 10.5.2 Smart客户端
- 10.5.3 Asking重定向
- 10.6 故障转移
- 10.6.1 故障发现
- 10.6.2 故障恢复
- 10.6.3 故障转移时间
- 10.6.4 故障演练
- 10.7 集群运维
- 10.7.1 集群完整性
- 10.7.2 带宽消耗
- 10.7.3 Pub/Sub广播问题
- 10.7.4 集群倾斜
- 10.7.5 集群读写分离
- 10.7.6 手动故障转移
- 10.7.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.1.1 内存分配控制
- 12.1.2 swappiness
- 12.1.3 Transparent Huge Pages
- 12.1.4 OOM killer
- 12.1.5 使用NTP
- 12.1.6 ulimit
- 12.1.7 TCP backlog
- 12.2 flushall/flushdb误操作
- 12.2.1 缓存与存储
- 12.2.2 借助AOF机制恢复
- 12.2.3 RDB有什么变化
- 12.2.4 从节点有什么变化?
- 12.2.5 快速恢复数据
- 12.3 安全的Redis
- 12.3.1 Redis密码机制
- 12.3.2 伪装危险命令
- 12.3.3 防火墙
- 12.3.4 bind
- 12.3.5 定期备份数据
- 12.3.6 不使用默认端口
- 12.3.7 使用非root用户启动
- 12.4 处理bigkey
- 12.4.1 bigkey的危害
- 12.4.2 如何发现
- 12.4.3 如何删除
- 12.4.3 最佳实践
- 12.5 热点key处理
- 12.6 死键处理
- 12.7 重点回顾
第13章 Redis监控运维云平台CacheCloud
- 13.1 CacheCloud是什么
- 13.1.1 现有问题
- 13.1.2 CacheCloud
- 13.2 快速部署
- 13.2.1 CacheCloud环境需求
- 13.2.2 CacheCloud快速开始
- 13.3 机器部署
- 13.3.1 部署机器
- 13.3.2 添加机器
- 13.4 接入应用
- 13.4.1 总体流程
- 13.4.2 账户申请和审批
- 13.4.3 应用申请和审批
- 13.4.4 客户端接入
- 13.5 用户功能
- 13.6 运维功能
- 13.6.1 应用运维
- 13.6.2 接入已存在的Redis
- 13.6.3 Redis配置模板
- 13.6.4 迁移工具
- 13.6.5 监控报警
- 13.6.6 系统配置管理
- 13.7 客户端上报
- 13.8 重点回顾
第14章 Redis配置统计字典
- 14.1 info系统状态说明
- 14.1.1 命令说明
- 14.1.2 详细说明
- 14.2 standalone配置说明和分析
- 14.2.1 总体配置
- 14.2.2 最大内存以及策略
- 14.2.3 AOF相关
- 14.2.4 RDB
- 14.2.5 慢查询配置
- 14.2.6 数据结构优化配置
- 14.2.7 复制相关
- 14.2.8 客户端相关
- 14.2.9. 安全相关
- 14.3 Sentinel配置说明和分析
相关推荐
在客户端方面,书中对Java客户端Jedis和Python客户端redis-py的使用方法进行了详细的说明,包括客户端管理、异常处理和案例分析,让开发者可以更有效地在应用程序中嵌入Redis。 持久化是数据库管理中的一个核心概念...
在运维方面,Redis的部署规划、常见运维操作、性能测试、持久化与备份恢复、监控和故障处理是运维人员必须掌握的知识。例如,关于部署规划,文档中提到了内存规划、服务器部署位置、持久化设置和多实例配置等。运维...
Redis开发与运维视频教程,本套教程基本上涵盖了redis的开发和运维工作中大部分的知识点,从redis的原理到redis的使用,再到redis的常见使用场景,再到redis的集群与故障处理。期望通过本套教程,可以帮助正在redis...
### Redis开发与运维实践指南 #### Introduction Redis是一款开源的键值存储系统,以其高性能、低延迟的特点在众多应用场景中发挥着重要作用。本指南旨在帮助开发者及运维人员快速掌握Redis的核心概念、常用命令...
本资料包包含了对Redis Cluster的运维实践和核心原理的深入剖析,旨在帮助读者理解并掌握如何有效地部署、管理和优化Redis Cluster。 1. **Redis Cluster的分片机制** Redis Cluster采用一致性哈希(Consistent ...
NOSQL-redis-运维-单机安装
为了解决这些问题,开发者引入了Redis作为session存储的中间件,而Tomcat-Redis-Session-Manager就是这样一个将Tomcat与Redis结合的解决方案。 Tomcat-Redis-Session-Manager是一个开源项目,它允许Tomcat服务器将...
【标题】"tomcat-redis-session-manager包集合下载(tomcat8)"涉及的主要知识点是将Redis集成到Tomcat中管理会话(session),以提高Web应用的性能和可扩展性。 【描述】中提到的"所需的tomcat-redis-session-...
赠送jar包:spring-data-redis-2.5.5.jar; 赠送原API文档:spring-data-redis-2.5.5-javadoc.jar; 赠送源代码:spring-data-redis-2.5.5-sources.jar; 赠送Maven依赖信息文件:spring-data-redis-2.5.5.pom; ...
Another-Redis-Desktop-Manager版本1.6.1,作为一个高效的Redis客户端,具备了多项实用功能,旨在提高开发人员的工作效率。首先,它的用户界面设计简洁明了,使得数据库的浏览、查询、修改以及数据导入导出等操作变...
服务端常见命令:time # 显示服务器时间 , 时间戳(秒), 微秒数dbsize # 当前数据库的key的数量bgrewriteaof # 后台进程重写AO
Redis开发与运维,本套教程用通俗的语言讲解Redis的原理,使用生动形象的例子帮助学员理解其工作过程,帮助各位学员轻松学习Redis。 本套教程基本上涵盖了redis的开发和运维工作中大部分的知识点,从redis的原理到...
2. **性能测试**:指南中提供了如何使用Redis-cli命令行和其他操作进行性能测试的方法。 3. **内存管理**:监控和优化内存使用是Redis运维工作的重要组成部分,指南提供了相应的工具和技巧。 ### 故障排查与恢复 ...
压缩文件包括tomcat-redis-session-manager-master-2.0.0.jar、jedis-2.7.3.jar、commons-pool2-2.3.jar三个jar包使用方法请参照https://github.com/jcoleman/tomcat-redis-session-manager。apache-tomcat-8.5.33....
《Redis桌面视图工具Another-Redis-Desktop-Manager在Windows环境下的应用详解》 Redis,全称Remote Dictionary Server,是一款开源、高性能的键值存储系统,常被用作数据库、缓存和消息中间件。其丰富的数据结构和...
标题中的“Another-Redis-Desktop-Manager.1.5.6”指的是Another Redis Desktop Manager的1.5.6版本。这是一款专为Redis数据库设计的桌面管理工具,它提供了直观的图形用户界面(GUI),方便用户进行数据的查看、...
jizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-...
同时,数据序列化和反序列化也需要注意,确保与Redis和Flink的数据格式兼容。 总的来说,flink-connector-redis_2.11-1.1-SNAPSHOT是Apache Flink的一个增强版Redis连接器,它解决了旧版本不支持设置键过期时间的...
本文将深度剖析`Tomcat-Redis-Session-Manager`的源码,揭示其如何实现Tomcat与Redis之间的会话同步。 首先,我们来看`Tomcat-Redis-Session-Manager`的核心功能:它将Tomcat默认的内存会话管理替换为基于Redis的...