Redis:内存陡增100%深度复盘

简介: 遵循Redis命令与运维规范,避免使用KEYS、Lua脚本等高风险操作,推荐SCAN、管道、扩展数据结构提升性能。合理配置监控、慢日志、Top Key分析,及时处理大Key、热Key及计划运维事件,保障实例稳定高效运行。

命令使用规范
重要程度 规范 说明
★★★★★ 避免执行范围查询(例如KEYS *),使用多次单点查询或SCAN命令来获取延迟优势。 执行范围查询可能导致服务发生抖动、引发慢请求或产生阻塞。
★★★★★ 推荐使用扩展数据结构(数据结构模块集成)实现复杂功能,避免使用Lua脚本。 Lua脚本会占用较多的计算和内存资源,且无法被多线程加速,过于复杂或不合理的Lua脚本可能导致资源被占满的情况。
★★★★☆ 合理使用管道(pipeline)降低链路的往返时延RTT(Round-trip time)。 如果有多个操作命令需要被迅速提交至服务器端,且客户端不依赖每个操作返回的结果,那么可以通过管道来作为优化性能的批处理工具,注意事项如下:
● 管道执行期间客户端将独占与服务器端的连接,推荐为管道单独建立一个连接,将其与常规操作分离。
● 每个管道应包含合理的命令数量(不超过100个)。
★★★★☆ 正确使用Redis社区版命令支持。 使用事务(Transaction)时,需要注意其限制:
● 不同于关系型数据库的事务功能,Redis的事务功能不支持回滚(Rollback)。
● 对于集群架构的实例,需要使用hash tag确保命令所要操作的Key都分布在1个Hash槽中,同时还需要避免hash tag带来的存储倾斜问题。
● 避免在Lua脚本中封装事务命令,可能因编译加载消耗较多的计算资源。
★★★★☆ 避免使用Redis社区版命令支持执行大量的消息分发工作。 由于Pub和Sub不支持数据持久化,且不支持ACK应答机制无法实现数据可靠性,当执行大量消息分发工作时(例如订阅客户端数量超过100且Value超过1 KB),订阅客户端可能因服务端资源被占满而无法接收到数据。
说明
为提升性能和均衡性,云数据库Redis对Pub和Sub类命令进行了优化,集群架构下,代理节点会根据channel name进行Hash计算,并分配至对应数据节点。
运维管理规范
重要程度 规范 说明
★★★★★ 充分了解不同的实例管理操作带来的影响。 在对Redis实例执行变更配置、重启等操作时,实例的状态将发生变化并产生某些影响(例如产生秒级的连接闪断),在操作前您需要充分了解。更多信息,请参见实例状态与影响。
★★★★★ 验证客户端程序的差错处理能力或容灾逻辑。 云数据库Redis支持节点健康状态监测,当监测到实例中的主节点不可用时,会自动触发主备切换,保障实例的高可用性。在客户端程序正式上线前,推荐手动触发主备切换,可帮助您验证客户端程序的差错处理能力或容灾逻辑。具体操作,请参见手动执行主备切换。
★★★★★ 禁用高耗时或高风险的命令。 生产环境中,无限制地使用命令可能带来诸多问题,例如执行FLUSHALL会直接清空全部数据;执行KEYS会阻塞Redis服务。为保障业务稳定、高效率地运行,您可以根据实际情况禁用特定的命令,具体操作,请参见禁用高风险命令。
★★★★☆ 及时处理阿里云发起的计划内运维操作(即待处理事件)。 为提供更优质的服务,持续提升产品性能和稳定性,阿里云会不定期地发起计划内运维操作(即待处理事件),对部分实例所属的机器执行软硬件或网络换代升级(例如数据库小版本升级)。当您收到来自阿里云的事件通知后,您可以查看本次事件的影响,根据业务需求评估是否需要调整执行时间。更多信息,请参见查看并管理待处理事件。
★★★★☆ 为核心指标配置监控报警,帮助掌握实例运行状态。 为CPU使用率、内存使用率、带宽使用率等核心指标配置监控报警,实时掌握实例运行状态。具体操作,请参见报警设置。
★★★★☆ 通过云数据库Redis提供的丰富的运维功能,定期检查实例状态或辅助排查资源消耗异常问题。 ● 分析慢日志:帮助您快速找到慢请求问题发生的位置,定位发出请求的客户端IP,为彻底解决超时问题提供可靠的依据。
● 查看性能监控:云数据库Redis支持丰富的性能监控指标,帮助您掌握Redis服务的运行状况和进行问题溯源。
● 发起实例诊断:帮助您从性能水位、访问倾斜情况、慢日志等多方面评估实例的健康状况,快速定位实例的异常情况。
● 发起缓存分析:帮助您快速发现实例中的大Key,帮助您掌握Key在内存中的占用和分布、Key过期时间等信息。
● 实时Top Key统计:帮助您快速发现实例中的热点Key,为进一步的优化提供数据支持。
★★★☆☆ 评估并开启审计日志功能。 开通审计日志功能后,可记录写操作的审计信息,为您提供日志的查询、在线分析、导出等功能,助您时刻掌握产品安全及性能情况。更多信息,请参见开通审计日志。
重要
开通审计日志后,视写入量或审计量可能会对Redis实例造成5%~15%的性能损失。如果业务对Redis实例的写入量非常大,建议仅在运维需要(例如故障排查)期间开通审计功能,以免带来性能损失。
后续优化项

大KEY
大KEY其实并不是长度过长的KEY,而是存放了慢查询命令的KEY。
对于String类型,慢查询的本质在于value的大小。
对于其他类型,慢查询的本质在于集合的大小(时间复杂度带来)。

如何找到大key?
阿里云:发现并处理Redis的大Key和热Key:
https://help.aliyun.com/zh/redis/user-guide/identify-and-handle-large-keys-and-hotkeys?spm=a2c4g.11186623.0.i1
如何解决大key?
其实就是一个字 "拆"。
1.对于字符串类型的key,我们通常要在业务层面将value的大小控制在10KB左右,如果value确实很大,可以考虑采用序列化算法和压缩算法来处理,推荐常用的几种序列化算法:Protostuff、Kryo或者Fst。
2.对于集合类型的key,我们通常要通过控制集合内元素数量来避免bigKey,通常的做法是将一个大的集合类型的key拆分成若干小集合类型的key来达到目的。

压测关注点
1.数据是否倾斜(不能只看聚合信息,要切换到分片上,看数据节点);
2.是否有大key、热key;
a.压测过程中关注(1)CloudDBA-实时TOP KEY统计(2)CloudDBA-慢请求;
b.压测后(1)CloudDBA-离线全量KEY分析(2)CloudDBA-诊断报告,做到分析报告时间覆盖压测时段;
3.CPU使用率、内存使用率、带宽使用率变化趋势(流入、流出都要看,最好看一个缓存周期);
4.如果可以,打开审计日志,看写入日志是否符合代码逻辑。
常用运维命令
出线上事故的时候,用于快速分析和保留现场。

相关文章
|
4月前
|
Ubuntu Linux KVM
虚拟机搭建教程(二)
教程来源 https://zlpow.cn/ 本文详解Windows、Linux三大平台虚拟化实战:Windows下用VMware安装Ubuntu 24.04(含Tools与快照),VirtualBox部署CentOS Stream 9;Linux主机通过KVM命令行及virt-manager搭建高性能虚拟机,覆盖配置、联网、增强工具与管理全流程。
|
5月前
|
存储 缓存 监控
【Redis】Redis性能优化:Pipeline、批量操作、Lua脚本、内存优化、慢日志分析
本体系构建Redis性能优化完整知识链,覆盖Pipeline(降RTT)、批量命令(提原子性)、Lua脚本(强一致+可编程)、内存优化(控碎片/精结构)及慢日志分析(根因诊断)五大模块,强调“先诊断、再优化、重闭环”,兼顾性能、稳定与可观测性。
|
6月前
|
弹性计算 测试技术 数据库
2026年阿里云活动中心优惠活动集锦:个人、企业和学生专属及同享活动参考
阿里云通过多元优惠活动降低用户上云门槛与成本,个人、企业、学生均可享特惠。个人用户可选38元/年轻量服务器或99元/年经济型e实例;企业用户有199元/年特惠u1实例,及迁云与出海补贴;学生与教师享“云工开物”计划,学生领300元无门槛券,教师获5折优惠。阿里云构建全应用场景普惠云生态,用户可根据需求选择最经济合适的方案。
950 5
|
10月前
|
存储 人工智能 搜索推荐
向量数据库的基本概念
向量数据库是专为存储和检索高维向量设计的系统,能将图片、文本等非结构化数据转化为“数字指纹”(向量),通过相似性搜索快速找到相近内容,广泛应用于推荐系统、图像识别和AI搜索等领域。
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
大模型专业名词解释手册
本手册由油炸小波设计提示词,Manus创作,系统梳理大语言模型核心概念,涵盖基础架构、训练方法、优化技术、应用推理及伦理评估。内容详实,术语权威,助力深入理解AI大模型世界。
|
10月前
|
消息中间件 人工智能 NoSQL
RocketMQ:A2A协议实现多智能体优化
Apache RocketMQ 推出轻量级通信模型 LiteTopic,专为 AI 多智能体协作设计,支持海量会话、上下文持久化与断点续传。结合 A2A 协议与阿里 AgentScope 框架,实现高可靠、低延迟的智能体通信,助力企业构建稳定高效的多智能体应用。
|
10月前
|
缓存 运维 监控
一场FullGC故障排查
针对JVM中大对象引发频繁Full GC的问题,可采取“治本”或“治标”两类方案:一是将数据移出内存,存入Redis等缓存系统,从根本上避免内存压力;二是优化对象结构,删除无用字段,减少内存占用。前者效果彻底但改造成本高,后者改动小但极端场景下仍存风险。排查时应结合GC日志、堆快照与监控工具定位根源,通过代码分析与现象验证解决问题,并根据实际场景选择合适策略。
|
10月前
|
人工智能 JSON 数据挖掘
大模型应用开发中MCP与Function Call的关系与区别
MCP是模型与外部系统交互的通用协议,实现多模型兼容的标准化通信;Function Call则是模型调用外部工具的具体机制。前者为“桥梁”,后者为“工具”,二者协同拓展大模型能力边界,提升应用灵活性与智能化水平。
|
10月前
|
人工智能 JSON 数据挖掘
全面认识MCP:大模型连接真实世界的“USB-C接口”
MCP通过动态上下文窗口、多步骤流程支持与标准化通信协议,实现AI智能体对用户偏好、会话历史与环境数据的持续记忆与灵活响应。其基于JSON-RPC 2.0的统一接口,支持Stdio、HTTP/SSE等传输方式,简化了大模型与工具系统的集成。借助MCP,AI应用可高效完成数据分析、办公自动化等复杂任务,提升处理能力的同时保障安全合规,推动大模型在真实场景中的落地应用。
|
10月前
|
测试技术 API 定位技术
从Google线上故障,谈灰度发布的重要性
2025年6月12日,Google Cloud因新功能未充分测试且未灰度发布,导致Service Control系统出现空指针异常,引发全球大规模服务中断,持续超7小时。故障暴露了配置管理与错误处理的严重缺陷,凸显配置灰度发布在核心系统中的关键作用。

热门文章

最新文章