记一次使用Redis Cache引起的Bug排查及修复总结

67 thinkphp 缓存 <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2006~2018 http://thinkphp.cn All rig 阅读详情

一次产品需求愉快的上线后,翌日下午有用户反馈,工单流程状态不对,为何不对呢?经过跟用户微信电话沟通,工单提交后,流程子状态应该展示转存量。是的,没有错,业务流程 没有问题,应该是我的程序出现bug了。恰巧上线后翌日,北京气象局多次短信通知,有大暴雨,注意防涝。尽管如此,当日我依然来到公司,排查一些其他反馈问题。室外开始大雨来临, 我收拾电脑准备回家,到家后准备吃饭,微信群又反馈出现几单状态不正确,我回复"刚到家,吃饭后立即排查"。吃饭后,经过电脑前一系列排查最终找到问题,当时已经晚上22点多了。

1.业务概述

数据流示意图

 

如上图业务逻辑是这么处理的:

  • 1.提交工单时,用户可以选择转存,输入一个天数,然后提交成功。这时候单子需要变成转存量。
  • 2.技术方案中是这么处理,对于转存的订单,通过redis设置key的失效时间(这里的时间就是转存天数换算成的秒)。
  • 3.客户端通过订阅Key失效事件,判断是转存订单,然后会通过redis zset对象入队;同时,把转存队列的该工单出队,实现工单队列从转存队列转移到正式队列。
  • 4.正式队列的工单系统会定时轮询去派单。
  • 工单队列示例

![工单队列示例](img-blog.csdnimg.cn/20200813215…

2.排查过程

服务是基于容器构建部署,线上初步上线经过评估,仅发布了两个实例节点。我依次打开两个webshell窗口,根据我编写的代码业务逻辑排查输出的日志。

  • 应用实例服务器1关键日志截图:

应用实例服务器1关键日志截图

 

从上图截图,可以看到一次完成的工单提交操作,包括表单提交的数据,delayDays=3。但是,在正式队列入队前构建上下文对象时,expireSeconds=10800。

日志的输出的时间是:2020-08-12 15:16:03.591。

  • 应用实例服务器2关键日志截图:

应用实例服务器2关键日志截图

 

另一台服务器收到该工单(通过Redis存储并设置key失效时间)的失效事件,发生的时间2020-08-12 18:16:05.373。相当于当天该工单就失效了,转存才6个小时就失效了。

  • RedisKeyExpirationListener

监听Key失效事件

@Component
@Slf4j
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {

    final static String STORED_CACHE_KEY_PREFIX = WorkOrderCacheManager.CacheType.stored_cache.getKey();

    final static String SUSPENDED_CACHE_KEY_PREFIX = WorkOrderCacheMan
KV Cache原理与工程实践:大模型推理性能优化核心 KV Cache是Transformer自回归解码中实现高效注意力计算的基础机制,其本质是通过缓存历史token的Key和Value向量,将注意力计算复杂度从O(n²)降至O(n)。它并非通用缓存系统,而是深度耦合于GPU显存布局、张量对齐与动态批处理的底层状态复用协议。理解KV Cache的内存结构、预分配逻辑与PagedAttention等创新设计,直接决定大模型推理服务的吞吐、延迟与显存利用率。本文围绕KV Cache在HuggingFace原生推理与vLLM生产部署中的关键配置、常见OOM与延迟突增 阅读详情

相关推荐

Windows 11图标变白框:从字体缓存到系统修复的完整指南

在Windows操作系统中,图标显示依赖于一套复杂的资源加载与缓存机制。其核心原理涉及系统字体引擎、图标索引数据库以及资源管理器的协同工作。当字体文件损坏、缓存索引失效或系统服务异常时,就会出现图标无法渲染的故障,表现为白色占位符方框。这一问题的技术价值在于揭示了Windows现代化界面(如Fluent Design)对字体图标系统的深度依赖,以及系统健壮性对缓存管理的敏感性。典型的应用场景包括系统版本升级后、安装第三方优化软件或遭遇非正常关机等情况。本文聚焦于Windows 11中因Segoe Fluen

weixin_34043301的博客 505

DeepSeek V4生产落地避坑指南:DMXAPI、KV Cache与Stream稳定性实战

大模型推理服务升级本质是基础设施重构,而非简单API替换。DeepSeek V4通过DMXAPI将推理生命周期显式暴露,其KV Cache预分配机制、Server-Sent Events流式响应和动态批处理策略,彻底改变了传统无状态调用范式。技术价值在于提升单请求延迟确定性,代价是要求工程侧主动管理连接状态、tokenization标准化及缓存亲和性。典型应用场景涵盖金融对话、工业工单生成等低延迟高可靠需求。本文聚焦生产级落地中的tokenization异常、stream中断、KV Cache抖动等高频故障

weixin_33698043的博客 385

SWE-Bench Pro:评测大模型真实工程修Bug能力的新标准

软件工程中,代码编写只是起点,真正考验开发者的是理解复杂上下文、定位隐蔽缺陷、协同修复线上问题的综合能力。SWE-Bench Pro 作为新一代代码智能评测基准,摒弃传统算法刷题范式,转而基于真实 GitHub 仓库快照构建可复现的 Bug 修复任务,强调对依赖管理、日志逆向分析、跨文件符号追踪等工程实践能力的评估。它不测‘能否写代码’,而测‘能否像资深工程师一样读代码、查日志、跑测试、提 PR’。GLM-5.1 在该基准取得 58.4 分,印证了其在真实研发场景中的上下文理解力与工作流嵌入潜力,标志着大模

weixin_30731305的博客 496

深入学习 Redis - 如何使用 Redis 作缓存?缓存更新策略?使用需要注意哪些问题(工作/重点)

缓存可以理解为,将常用的数据从放到一个访问速度更快的的地方,方便更快的随时读取. 也就是说,速度快的设备,可以作为速度慢的设备的缓存,加快读取速度。

CYK_byte的博客 5683

使用Spring Cache抽象层时,无法有效地获取缓存中的所有key,如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 912

Redis

redis

の博客 381

Redis故障注入代理。 测试应用程序的弹性以防止Redis的失败。-Golang开发

RedFI充当客户端和Redis之间的代理,具有根据您给出的规则动态注入故障的功能。 功能易于使用。 它只是您执行的二进制文件。 对线索透明的RedFI可以作为客户端和Redis之间的代理,并具有根据您给出的规则动态注入故障的功能。 功能易于使用。 它只是您执行的二进制文件。 对客户透明。 灵活地在您定义的Redis命令上注入故障。 将故障注入限制为一定比例的命令。 将故障注入仅限于某些客户端。 注入等待时间,断开连接,返回空响应。 为什么? 我们相信,赢得您的信任

Ubuntu20.04安全重启后WiFi图标消失?MT7922网卡驱动修复全攻略

本文详细解析了Ubuntu20.04安全重启后WiFi图标消失的问题,特别是针对MT7922网卡驱动失效的情况。通过诊断命令和分步解决方案,包括禁用PCIe ASPM、更新无线固件和升级HWE内核,帮助用户快速恢复网络连接。文章还提供了进阶排查技巧和系统优化建议,确保WiFi稳定运行。

weixin_29202687的博客 370

SpringBoot+Git+Jenkins+K8s容器化部署

SpringBoot+Git+Jenkins+K8s容器一套部署流程

可乐加.糖 471

电路板功能测试系统-FCT for PCBA

电路板功能测试系统用于电路板组件(PCBA)的功能测试(FCT),满足自动化大批量生产的要求。  ● 用户根据自己需要定义测试步骤,灵活方便  ● 适合工业自动化大批量生产应用  ● 系统测试精度高,稳定可靠   一、电路板功能测试系统概述 电路板测试过程通常由多个步骤组成,每单个步骤中需要对多个物理量(电压、电流、电阻、频率、波形等)进行测试。在每个步骤测试时

6813

AI+AB测试提升电商主图点击率实战指南

在电商运营中,主图点击率(CTR)是衡量商品吸引力的核心指标,直接影响转化率和订单增长。通过AI技术批量生成高质量主图素材,结合数据驱动的AB测试方法,可以显著提升点击率。AI工具如MidJourney和Stable Diffusion能够快速生成多样化视觉方案,而自动化处理流水线则确保素材规格统一。AB测试体系通过多维变量控制和流量分配策略,科学验证不同素材效果。这种方法特别适用于需要快速迭代的电商场景,某女装店铺案例显示CTR从1.2%提升至3.8%,验证了AI+数据协同优化的技术价值。

weixin_29058331的博客 298

《数据分析岗笔试高频题:字节常用的SQL与AB测试考题解析》

• 核心考点:用RANK()/DENSE_RANK()/ROW_NUMBER()排序,SUM() OVER()计算累积值。◦ 用公式n=2*(Zα/2+Zβ)^2*σ²/δ²,取α=0.05,β=0.2,计算得每组需260人;◦ 关注字节技术公众号“字节跳动数据团队”,学习真实AB测试案例(如“推荐算法优化实验”)。• 题型分布:SQL编程题(40%)、AB测试方案设计(30%)、数据洞察题(30%);◦ 牛客网“字节跳动SQL真题”(如“统计用户7日留存”“广告投放ROI计算”)。

2501_91651594的博客 1107

蛋白质组学进阶指南 | (八)差异蛋白筛选与功能解析实战

本文是蛋白质组学差异蛋白筛选与功能解析的实战指南。详细讲解了如何利用R语言的limma包进行差异表达分析,结合FDR校正和差异倍数设定筛选关键蛋白,并通过火山图可视化结果。进一步介绍了使用clusterProfiler进行GO与KEGG功能富集分析,以及利用STRING数据库和Cytoscape构建蛋白互作网络以识别枢纽分子,最终串联分析形成可验证的生物学假说。

weixin_29208077的博客 742

HFSS学习笔记——Vivaldi天线仿真(一)

Vivaldi 天线HFSS仿真,HFSS中指数曲线绘制及曲面绘制。

and_future的博客 1万+

【ComfyUI专栏】ComfyUI 常用工作流下载与分享网址

首先我们来分享第一个网站,Openart 网站,这个网站同时也能提供比较多的其他类型。但是如果希望下载工作流,我们可以访问到如下的这个站点。作为ComfyUI的学习用户来说,我们通常需要借助他山之石来帮助我们快速成长,因此我们需要找到能够分享和下载的网址。,当前网站是综合性网站,在网站中可以下载各种不同的类型,其中工作流只是可以下载的非常小的部分。这个网站也可以浏览不同的工作流,这个工作流的地址和访问如下的站点。

技术与管理的平衡木- 7796

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 内含面试|一文搞懂HBase的基本原理
下一篇: jvm优化——图解垃圾回收,看不懂你打我
java架构师小芷
博客等级 码龄6年 216粉丝 519原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值