本人新书-Redis开发与运维-目录

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 声明: 原定书名《Redis3开发运维最佳实践》改为《Redis开发与运维》,因为根据最新的广告法,书名不允许有最字。 一、图书简介 本人和同事撰写的新书《Redis开发与运维》近期已经截稿,本书重点关注Redis开发运维中方方面面的问题,作者是来自搜狐视频一线的Redis开发和运维工程师-付磊和张益军。
声明:
原定书名《 Redis3开发运维最佳实践》改为《 Redis开发与运维》,因为根据最新的广告法,书名不允许有最字。

一、图书简介

本人和同事撰写的新书《Redis开发与运维》近期已经截稿,本书重点关注Redis开发运维中方方面面的问题,作者是来自搜狐视频一线的Redis开发和运维工程师-付磊和张益军。2016年3月,作者所在团队开源了Redis的私有云平台CacheCloud

本书预计2017年2月中旬,由机械工业出版社(华章图书)出版,全书大概400页左右,后续会公布一些样章,欢迎加入qq讨论群:534429768。

目前已经在京东预售:https://search.jd.com/Search?keyword=redis%E5%BC%80%E5%8F%91%E4%B8%8E%E8%BF%90%E7%BB%B4&enc=utf-8&suggest=4.def.0.T06&wq=redis&pvid=bmg7n0zi.cgdy59

本书目录如下:

  • 第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配置说明和分析
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
118 3
|
1月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
42 2
|
2月前
|
运维 Java Linux
【运维基础知识】掌握VI编辑器:提升你的Java开发效率
本文详细介绍了VI编辑器的常用命令,包括模式切换、文本编辑、搜索替换及退出操作,帮助Java开发者提高在Linux环境下的编码效率。掌握这些命令,将使你在开发过程中更加得心应手。
39 2
|
2月前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
39 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
2月前
|
存储 运维 监控
实时计算Flink版在稳定性、性能、开发运维、安全能力等等跟其他引擎及自建Flink集群比较。
实时计算Flink版在稳定性、性能、开发运维和安全能力等方面表现出色。其自研的高性能状态存储引擎GeminiStateBackend显著提升了作业稳定性,状态管理优化使性能提升40%以上。核心性能较开源Flink提升2-3倍,资源利用率提高100%。提供一站式开发管理、自动化运维和丰富的监控告警功能,支持多语言开发和智能调优。安全方面,具备访问控制、高可用保障和全链路容错能力,确保企业级应用的安全与稳定。
51 0
|
2月前
|
NoSQL API Redis
如何使用 C++ 开发 Redis 模块
如何使用 C++ 开发 Redis 模块
|
4月前
|
NoSQL Java Redis
Redis6入门到实战------思维导图+章节目录
这篇文章提供了Redis 6从入门到实战的全面学习资料,包括思维导图和各章节目录,涵盖了NoSQL数据库、Redis安装配置、数据类型、事务、持久化、主从复制、集群等核心知识点。
Redis6入门到实战------思维导图+章节目录
|
4月前
|
运维 Devops 持续交付
自动化运维之路:从脚本到DevOps探索后端开发:从基础到高级实践
【8月更文挑战第28天】在数字化时代的浪潮中,企业对于IT运维的要求越来越高。从最初的手动执行脚本,到如今的自动化运维和DevOps实践,本文将带你领略运维的演变之旅。我们将探索如何通过编写简单的自动化脚本来提升效率,进而介绍DevOps文化的兴起及其对现代运维的影响。文章将为你揭示,通过持续集成、持续部署和微服务架构的实践,如何构建一个高效、可靠的运维体系。准备好让你的运维工作变得更加智能化和自动化了吗?让我们一起踏上这段旅程。 【8月更文挑战第28天】 本文旨在为初学者和有一定经验的开发者提供一个深入浅出的后端开发之旅。我们将一起探索后端开发的多个方面,包括语言选择、框架应用、数据库设计
|
4月前
|
运维 Kubernetes 监控
|
4月前
|
敏捷开发 运维 Devops
DevOps文化:打破开发与运维之间的壁垒
【8月更文挑战第14天】DevOps文化是现代软件开发和运维的重要趋势之一。通过打破开发与运维之间的壁垒,实现自动化、持续集成/持续部署以及紧密协作等关键实践,可以显著提高软件交付的质量和效率。对于任何希望在数字化时代保持竞争力的企业来说,拥抱DevOps文化无疑是一个明智的选择。