声明:
原定书名《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配置说明和分析
相关推荐
三菱FX3G FX3S与四台E700变频器Modbus RTU通讯控制:正反转、频率设定与读取方案,三菱FX3G FX3S与四台E700变频器通讯:Modbus RTU协议实现正反转、频率设定与控制,快速反馈与教程包含,三菱FX3G FX3S 485协议通讯四台三菱E700变频器程序资料 三菱FX3G FX3S+485bd扩展,采用modbus rtu协议,crc校验,通讯控制四台E700变频器,可以实现正反转,停止,频率的设定,频率,电流等的读取。 反馈快,使用方便,包括教程,plc和触摸屏程序,变频器参数设置和接线,别的变频器支持rtu协议也可以实现。 ,三菱FX系列PLC; 485协议通讯; 变频器E700; 通讯控制; 参数设置; 教程。,三菱PLC控制E700变频器:485协议通讯与程序设置全解
1、文件内容:hyphen-nl-0.20050617-10.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/hyphen-nl-0.20050617-10.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
西门子S7-1200PLC结构化编程在5轴伺服项目中的应用:模块化设计、触摸屏控制及电气图纸实战解析,西门子S7-1200PLC结构化编程实现多轴联动与多种伺服功能应用:CAD图纸、PLC程序和触摸屏程序协同运作。,西门子S7-1200PLC结构化编程5轴伺服项目 ,包含plc程序、威纶通触摸屏程序、cad电气图纸。 可以实现以下功能,规格有: 1.三轴机械手X轴-Y轴-Z轴联动取放料PTO脉冲定位控制台达B2伺服 2.台达伺服速度模式应用+扭矩模式应用实现收放卷 3.程序为结构化编程,每一功能为模块化设计,功能:自动_手动_单步_暂停后原位置继续运行_轴断电保持_报警功能_气缸运行及报警. 4.每个功能块可以无数次重复调用,可以建成库,用时调出即可 5.上位机采样威纶通触摸屏 6.参考本案例熟悉掌握结构化编程技巧,扩展逻辑思维。 博图14以上都可以打开 ,核心关键词:西门子S7-1200PLC; 结构化编程; 5轴伺服项目; PLC程序; 威纶通触摸屏程序; CAD电气图纸; 三轴机械手; PTO脉冲定位控制; 台达B2伺服; 速度模式应用; 扭矩模式应用; 模块化设计; 轴断电保
情感分析算法在多个领域有着广泛的应用场景和丰富的案例
基于MATLAB仿真的MMC整流站与逆变站柔性互联技术研究:快速工况仿真与环流抑制控制,基于MATLAB仿真的MMC整流站与逆变站运行分析及四端柔性互联工况仿真模拟研究,21电平MMC整流站、MMC逆变站、两端柔性互联的MATLAB仿真模型,4端柔性互联、MMC桥臂平均值模型、MMC聚合模型(四端21电平一分钟即能完成2s的工况仿真) 1-全部能正常运行,图四和图五为仿真波形 2-双闭环控制,逆变站PQ控制,整流站站Udc Q控制 3-最近电平逼近调制+子模块电容充电 4-环流抑制控制 ,1. 21电平MMC整流站; 2. MMC逆变站; 3. MATLAB仿真模型; 4. 两端柔性互联; 5. 桥臂平均值模型; 6. 聚合模型; 7. 双闭环控制; 8. 最近电平逼近调制; 9. 子模块电容充电; 10. 环流抑制控制。,基于柔性互联的MMC系统仿真模型:多电平控制与环流抑制研究
有效应对网络舆情教育培训PPT.pptx
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
Matlab领域上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
淘宝买的,直接分享给大家了,没有测试环境,也没有办法去测。但我想,他应该是可以用的
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
ACM比赛经验分享(基础知识与算法准备等)
运行GUI版本,可二开
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
该是指包含恶意网址的数据库或数据集,它通常被用于网络安全研究、恶意软件检测、网络欺诈防范等领域。研究人员和安全专家会利用这个数据集来分析恶意网址的特征、行为模式,进而开发出相应的检测算法和防护措施,以识别和阻止恶意网址对用户设备和网络环境造成的潜在威胁。该数据集包含约 651,191 条经过标记的 URL,涵盖了四种主要类型:良性(Benign)、篡改(Defacement)、钓鱼(Phishing)和恶意软件(Malware)。其中,良性 URL 占据了约 428,103 条,篡改 URL 有 96,457 条,钓鱼 URL 为 94,111 条,而恶意软件 URL 则有 32,520 条。该数据集的显著特点是其多类别分类的全面性,不仅包括常见的恶意 URL 类型,还涵盖了大量良性 URL,使得研究人员能够更全面地理解和区分不同类型的 URL。此外,数据集以原始的 URL 形式提供,研究人员可以根据需要提取和创建特征,而不受预设特征的限制。
字卡v4.3.4 原版 三种UI+关键字卡控制+支持获取用户信息+支持强制关注 集卡模块从一开始的版本到助力版本再到现在的新规则版本。 集卡模块难度主要在于 如何控制各种不同的字卡组合 被粉丝集齐的数量。 如果不控制那么一定会出现超过数量的粉丝集到指定的字卡组合,造成奖品不够的混乱,如果大奖价值高的话,超过数量的粉丝集到大奖后,就造成商家的活动费用超支了。我们冥思苦想如何才能限制集到指定字卡组合的粉丝数,后我们想到了和支付宝一样的选一张关键字卡来进行规则设置的方式来进行限制,根据奖品所需的关键字卡数,设定规则就可以控制每种奖品所需字卡组合被粉丝集到的数量,规则可以在活动进行中根据需要进行修改,活动规则灵活度高。新版的集卡规则,在此次政府发布号的活动中经受了考验,集到指定字卡组合的粉丝没有超出规则限制。有了这个规则限制后,您无需盯着活动,建好活动后就无人值守让活动进行就行了,您只需要时不时来看下蹭蹭上涨的活动数据即可。 被封? 无需担心,模块内置有防封功能,支持隐藏主域名,显示炮灰域名,保护活动安全进行。 活动准备? 只需要您有一个认证服务号即可,支持订阅号借用认证服务号来做活动。如果您
DSP28035的CAN通信升级方案:包括源码、测试固件与C#上位机开发,支持周立功USBCAN-II兼容盒及BootLoader闪烁指示,DSP28035的CAN升级方案及详细配置说明:使用新动力开发板与C#上位机软件实现固件升级,涉及用户代码、BootLoader代码及硬件连接细节,DSP28035的can升级方案 提供源代码,测试用固件。 上位机采用c#开发。 说明 一、介绍 1、测试平台介绍:采用M新动力的DSP28035开发板,CAN口使用GPIO30\31。波特率为500K。 2、28035__APP为测试用的用户代码,ccs10.3.1工程,参考其CMD配置。 3、28035_Bootloader_CAN为bootloader源代码,ccs10.3.1工程; 4、SWJ为上位机,采用VS2013开发,C#语言。 5、测试使用的是周立功的USBCAN-II,can盒,如果用一些国产可以兼容周立功的,则更这里面的ControlCAN.dll即可。 6、升级的app工程需要生成hex去升级,具体参考我给的工程的设置。 7、BootLoader代码,只有D400这一个灯1s闪烁一
基于Matlab的数字验证码识别系统:预处理与不变矩算法的实践应用及GUI界面构建,基于MATLAB不变矩算法的数字验证码识别系统设计与实现,基于matlab不变矩算法实现数字验证码 过程:先对验证图像进行去噪、定位、归一化等预处理,然后计算待识别数字的不变矩,再进行特征匹配,得到识别结果。 以Matlab软件为开发平台来进行设计实现及仿真,并构建相应的GUI界面。 实验结果表明利用不变矩在识别数字验证码方面具有可行性。 ,关键词:Matlab;不变矩算法;数字验证码;预处理;特征匹配;GUI界面;实验验证;可行性。,Matlab实现数字验证码识别:预处理与不变矩算法的GUI仿真
基于STM32F103的磁编码器通讯方案:原理图、PCB设计与源码实现,附多摩川协议手册解析,基于STM32F103的精准多摩川绝对值磁编码器通讯解决方案:原理图、PCB设计与源码实践手册,完整包含多摩川协议解析,基于STM32F103的多摩川绝对值磁编码器通讯方案 包含:原理图,PCB,源码,多摩川协议手册 ,核心关键词:STM32F103;多摩川绝对值磁编码器;通讯方案;原理图;PCB;源码;多摩川协议手册;,基于STM32F103的绝对值磁编码器通讯方案:原理图PCB与源码解析,附多摩川协议手册
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
php项目之学生成绩查询系统源码,项目仅供学习参考使用