Redis-11内存管理与性能优化

11 内存管理与性能优化

🎯 学习要点

  • 内存上限与淘汰策略
  • 慢查询监控与采样
  • 批量与管道优化

📖 名词解释

  • maxmemory:Redis 允许使用的最大内存上限。
  • 淘汰策略:在内存达到上限时选择哪些键被删除(LRU/LFU/TTL 等)。
  • LRU:最近最少使用,优先淘汰最久未被访问的键。
  • LFU:最不常用,优先淘汰访问频率低的键。
  • SLOWLOG:慢查询日志,记录执行时间超过阈值的命令。
  • Pipeline:批量发送命令减少往返时间,提高吞吐。
  • 热 Key:访问异常频繁的键,可能成为性能瓶颈。
  • 大 Key:体积或成员过大的键,影响内存与网络传输效率。
  • 命中率:缓存命中次数与总请求次数的比例,衡量缓存有效性。

🧭 学习方案

  • 设置maxmemory与淘汰策略为 LRU/LFU,观察命中率与内存变化。
  • 开启慢查询日志并分析 Top 命令,优化操作与改用更合适的数据结构。
  • 使用 Pipeline 进行批量写入与读取,对比单次调用的性能差异。
  • 统计并治理大 Key 与热 Key,拆分结构或引入本地缓存降低压力。

🗺️ 应用场景说明

  • 热门列表缓存:使用 LRU 淘汰保留常访问的数据,减少回源。
  • 批量写入任务:用管道写 1000 条配置或字典,提高导入速度。
  • 大促场景:监控热 Key(如热点商品详情),提前预热与分片。

⚠️ 注意事项

  • 控制键与成员规模
  • 避免序列化膨胀
  • 关注网络与连接池参数

💾 内存与淘汰策略

maxmemory 4gb maxmemory-policy allkeys-lru

通俗说明

  • 限制最大内存并设置淘汰策略,常用 LRU/LFU 保留热点数据。
  • 淘汰发生在写入时,建议为缓存数据设置合理 TTL。
详细解释
  • maxmemory控制上限,超出写入触发淘汰;策略如 LRU/LFU/TTL 等。
  • 业务缓存应设置 TTL,避免长期占用导致频繁淘汰影响性能。
  • 生产需监控命中率与淘汰次数,评估容量与策略是否合适。
速记口诀
  • 口诀:设上限选策略,缓存要 TTL
配置文件修改步骤(maxmemory/淘汰策略)
  • 文件位置:
    • Linux:/etc/redis/redis.conf/usr/local/etc/redis/redis.conf
    • Windows:C:\redis\redis.conf
    • Docker(容器内):/usr/local/etc/redis/redis.conf
  • 修改内容(持久化到配置文件):
    maxmemory 4gb maxmemory-policy allkeys-lru
  • 运行时命令(临时生效,重启后需写入配置):
    redis-cli CONFIG SET maxmemory4294967296redis-cli CONFIG SET maxmemory-policy allkeys-lru redis-cli CONFIG GET maxmemory redis-cli CONFIG GET maxmemory-policy redis-cli INFO memory
  • 命令行编辑示例(Linux):
    sudovi/etc/redis/redis.conf# 修改 maxmemory 与 maxmemory-policy 后保存退出sudosystemctl restart redis-server 或sudoserviceredis-server restart redis-cli CONFIG GET maxmemory redis-cli CONFIG GET maxmemory-policy
  • 命令行编辑示例(Windows):
    notepad C:\redis\redis.conf# 保存后重启进程Stop-Process-Name redis-server-ForceStart-Process"C:\redis\redis-server.exe"-ArgumentList"C:\redis\redis.conf"redis-cliCONFIG GET maxmemory redis-cliCONFIG GET maxmemory-policy

🐢 慢查询与阈值

slowlog-log-slower-than 10000 slowlog-max-len 256

通俗说明

  • 超过阈值的命令会被记录到慢查询日志,便于定位性能问题。
  • 保留一定长度的慢日志,结合采样与统计分析热点命令。
详细解释
  • slowlog-log-slower-than以微秒为单位;设得过低会产生大量记录。
  • 配合slowlog-max-len控制日志长度,定期导出分析。
  • 慢日志结合业务监控,定位大 Key、长阻塞与高延迟来源。
配置文件修改步骤(慢查询)
  • 文件位置与修改方式同上;写入以下配置并重启生效:
    slowlog-log-slower-than 10000 slowlog-max-len 256
  • 运行时命令:
    redis-cli CONFIG SET slowlog-log-slower-than10000redis-cli CONFIG SET slowlog-max-len256redis-cli CONFIG GET slowlog-log-slower-than redis-cli CONFIG GET slowlog-max-len
  • 操作示例:
    # 拉取慢日志样本redis-cli SLOWLOG GET10# 查看总量redis-cli SLOWLOG LEN# 导出 CSV 便于分析redis-cli --csv SLOWLOG GET128>slowlog.csv# 清空慢日志(谨慎操作)redis-cli SLOWLOG RESET

📊 查询与监控

# 通用指标redis-cli INFO redis-cli INFO memory redis-cli INFO stats# 延迟诊断redis-cli LATENCY DOCTOR# 内存诊断redis-cli MEMORY STATS redis-cli MEMORY DOCTOR# 大 Key/热 Key 采样(需新版本 redis-cli)redis-cli --bigkeys redis-cli --hotkeys

通俗说明

  • INFO查看实例指标;SLOWLOG GET拉取慢日志样本。
  • 结合监控告警与采样分析,持续优化热点与大 Key。
详细解释
  • INFO包含内存、连接、命中率、持久化等多维指标。
  • SLOWLOG GET N拉取最近 N 条慢日志,辅助定位问题命令。
  • 指标与慢日志结合时间窗分析,制定优化计划与限流策略。

🚚 管道示例

importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importorg.springframework.data.redis.core.RedisTemplate;importorg.springframework.data.redis.core.RedisCallback;importjava.util.List;@ServicepublicclassPipelinePerf{@AutowiredRedisTemplate<String,String>tpl;publicList<Object>writeMany(){// 执行管道批量写入,减少网络往返returntpl.executePipelined((RedisCallback<Object>)connection->{for(inti=0;i<1000;i++){// 逐条写入字符串键值connection.stringCommands().set(("k:"+i).getBytes(),("v:"+i).getBytes());}returnnull;});}}

通俗说明

  • Pipeline 像“打包寄送”,把很多命令一起发出去,减少来回等待时间。
  • 它不保证原子性,失败重试要在业务层处理,适合大量小写入的任务。
  • 写入过多也会占用连接与内存,注意批次大小与限速。
详细解释
  • 批量发送降低 RTT,但每批的大小需结合连接与内存限制设置。
  • 非原子,遇到错误需记录并重试或补偿,避免数据不一致。
  • 合理的批次与节流能显著提升吞吐并保持系统平稳。
系统环境操作示例(性能对比)
# 使用 redis-benchmark 测试基础吞吐(Linux/macOS)redis-benchmark -t set,get -n100000-q# 使用管道并发提升吞吐(-P 指定并发 pipeline 深度)redis-benchmark -tset-n200000-P50-q# 通过 --csv 输出便于分析redis-benchmark -t set,get -n100000-P20--csv>benchmark.csv
# Windows 使用 redis-benchmark.exe(路径按安装调整)&"C:\redis\redis-benchmark.exe"-tset,get-n 100000-P 50-q
# 使用 redis-cli --pipe 进行批量导入(Linux/macOS)seq1100000|awk'{print "SET k:"$1" v:"$1}'|redis-cli --pipe

小结

  • LRU/LFU 淘汰策略适合缓存场景,需结合业务访问模式选择。
  • 慢查询通过 SLOWLOG 采样与阈值定位问题命令,优化数据结构与批量写。
  • 批量与管道减少网络往返,适合大量小写入;注意非原子性与失败重试策略。
  • 降低序列化开销与对象大小,避免大 Key 影响内存与网络。
参数模板(可直接粘贴到 redis.conf)
# 小型生产环境(折中可靠性与性能) maxmemory 2gb maxmemory-policy allkeys-lru slowlog-log-slower-than 10000 slowlog-max-len 256 # 高吞吐环境(优先稳态吞吐) maxmemory 16gb maxmemory-policy allkeys-lfu slowlog-log-slower-than 5000 slowlog-max-len 1024

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1018522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AP出版 | CPCI检索】第十一届金融创新与经济发展国际学术会议(ICFIED 2026)

第十一届金融创新与经济发展国际学术会议(ICFIED 2026)将于2026年1月9-11日在中国天津市召开。【连续10年成功举办,连续5届成功被CPCI检索,连续10届成功被CNKI&谷歌学术检索】 第十一届金融创新与经济发展国际…

32B大模型新标杆:IBM Granite-4.0-H-Small如何重塑企业AI部署范式

32B大模型新标杆&#xff1a;IBM Granite-4.0-H-Small如何重塑企业AI部署范式 【免费下载链接】granite-4.0-h-small-FP8-Dynamic 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/granite-4.0-h-small-FP8-Dynamic 导语 IBM推出的32B参数大模型Granite-4.0-H-S…

时代三岔口:GPT-5.2的“核爆”效应下,谁将最快应变?政府、企业还是教育机构?

看不见的冲击波——GPT-5.2的结构性挑战 自GPT-5.2发布以来&#xff0c;我们已经充分认识到其性能的卓越。它不仅是效率的催化剂&#xff0c;更是全球社会结构、经济规则和人才培养模式的“熔断器”。它在知识工作领域的全面渗透&#xff0c;正在以前所未有的速度和深度&#x…

kubesphere-更换新的harbor

背景介绍&#xff1a;原来用的harbor磁盘空间比较满了&#xff0c;现在准备更换一台新搭建的harbor.现在就是怎么配置多个harbor的问题了&#xff0c;服务器上面使用的是containerd的运行环境。只要把 两个 Harbor 都改用 hosts.toml 文件 即可&#xff0c; 不要再在 config.to…

想成为网络安全工程师?从入门到专家,这些岗位与职责你需要了解

网络安全可以从事哪些岗位 伴随着社会的发展&#xff0c;网络安全被列为国家安全战略的一部分&#xff0c;因此越来越多的行业开始迫切需要网安人员&#xff0c;也有不少人转行学习网络安全。那么网络安全可以从事哪些岗位?岗位职责是什么?相信很多人都不太了解&#xff0c;…

有哪些永久免费进销存出入库管理系统?推荐象过河软件

对于中小微企业和个体商户而言&#xff0c;进销存出入库管理是经营的核心环节&#xff0c;可传统手工记录模式易出现数据错漏、库存积压或缺货的问题&#xff0c;而付费进销存系统又会增加经营成本&#xff0c;因此不少商家都在寻找永久免费的进销存出入库管理系统。2025 年&am…

2025年档案寄存托管推荐供应商TOP5:高效服务基地与靠谱 - mypinpai

本榜单依托档案行业全维度调研、真实客户口碑与技术实力评估,深度筛选出5家标杆档案寄存托管服务商,为企业/机构选型提供客观依据,助力精准匹配安全、高效的档案管理伙伴。 TOP1 推荐:窍楚档案 推荐指数:★★★★…

JoltPhysics球体碰撞边缘优化:从理论到工程实践

JoltPhysics球体碰撞边缘优化&#xff1a;从理论到工程实践 【免费下载链接】JoltPhysics A multi core friendly rigid body physics and collision detection library, written in C, suitable for games and VR applications. 项目地址: https://gitcode.com/GitHub_Trend…

LeetCode 面试经典 150_回溯_电话号码的字母组合(98_17_C++_中等)

LeetCode 面试经典 150_回溯_电话号码的字母组合&#xff08;98_17_C_中等&#xff09;题目描述&#xff1a;输入输出样例&#xff1a;题解&#xff1a;解题思路&#xff1a;思路一&#xff08;递归&#xff08;回溯&#xff09;&#xff09;&#xff1a;代码实现代码实现&…

为什么稳定盈利的交易理论,一旦量化反而会亏钱?

一个让所有交易者深思的矛盾在金融交易的殿堂中&#xff0c;主观‘艺术’与量化‘科学’并行不悖&#xff0c;却也催生了一个根本性的悖论&#xff0c;足以动摇无数交易者的信仰根基。一方面&#xff0c;我们有主观交易&#xff0c;交易员依赖自身的经验、直觉以及市场理论&…

金叶仪器微型空气站解决方案助力精细化环境监测与管理

在环境监测领域&#xff0c;随着对空气质量数据精细化、实时化需求的不断提升&#xff0c;传统大型监测站的部署模式已难以全面覆盖多样化的监测场景。针对社区、园区、道路、工地等局部区域的空气质量管理&#xff0c;一种灵活、高效、易部署的小型微型空气监测站解决方案应运…

数据空间价值管理:构建数字时代的价值共创与释放新范式

在数字经济时代&#xff0c;数据已成为关键生产要素。如何实现数据的安全、可信、高效流动并释放其倍增价值&#xff0c;成为当前核心挑战。数据空间作为一种构建可信环境、促进数据流通的新型基础设施与生态系统&#xff0c;正是破解这一难题的关键所在。其核心使命在于通过系…

前端设计模式:详解、应用场景与核心对比

前端设计模式&#xff1a;详解、应用场景与核心对比 前端设计模式是解决前端开发中重复出现的问题的标准化解决方案&#xff0c;涵盖创建型、结构型、行为型三大类核心模式&#xff0c;同时包含前端特有的适配型模式&#xff08;如发布-订阅、MVVM等&#xff09;。本文结合前端…

2025年五大自助洗车加盟公司推荐:靠谱的自助洗车加盟公司有 - 工业推荐榜

本榜单基于市场需求调研、真实加盟案例反馈及品牌综合实力评估,筛选出十家在自助洗车加盟领域表现突出的企业,为创业者提供客观选型参考,助力找到适配的加盟伙伴。 TOP1 推荐:深圳市洗刷刷环保科技有限公司 推荐指…

为何销售易能携手国家智库,共筑AI CRM新标准?

随着人工智能&#xff08;AI&#xff09;技术浪潮席卷全球&#xff0c;客户关系管理&#xff08;CRM&#xff09;行业正迎来一场深刻的代际革命。在这一背景下&#xff0c;建立权威、统一的AI CRM标准&#xff0c;对引导行业健康发展、保障企业数字化转型成效至关重要。2025年9…

TruffleHog实战指南:构建企业级凭证安全防护体系

在数字化时代&#xff0c;代码中意外泄露的API密钥已成为企业安全的最大隐患。根据最新安全分析报告&#xff0c;超过80%的数据泄露事件源于硬编码凭证&#xff0c;而平均检测周期长达数月之久。本文将带你构建一套完整的凭证安全防护体系&#xff0c;通过TruffleHog生态工具实…

2025年小区亮化工程厂家五大推荐榜单,看看哪家实力强? - myqiye

夜幕降临,城市的轮廓在灯光中苏醒——小区的温馨光晕守护归家人的脚步,商业街的动态灯效点燃消费热情,景区的沉浸光影留住游客的目光……亮化工程早已从照亮空间升级为塑造城市灵魂。但市场上厂家鱼龙混杂,小区亮化…

快手可图联合清华大学提出VQRAE, 首个能同时产生连续表征和离散表征的统一tokenizer!

你有没有过这样的体验&#xff1a;让AI根据你的描述生成图片&#xff0c;它却get不到核心语义&#xff0c;明明要 "阳光穿透森林的清晨"&#xff0c;结果画出一片昏暗的树林&#xff1b;或者让AI分析图片&#xff0c;它只能泛泛而谈“有山有水”&#xff0c;却无法将…

日一面】HTTP 和 HTTPS 的区别

基础问答问&#xff1a;HTTP 和 HTTPS 有什么区别&#xff1f;答&#xff1a;1. HTTPS 是 HTTP SSL/TLS 协议的一个组合&#xff0c;使用 SSL/TLS 加密&#xff0c;相对更安全。2. 端口使用不同&#xff0c;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。3. HTTPS 由于加…

腾讯开源Hunyuan-1.8B-Instruct-AWQ-Int4:重塑边缘智能与企业级AI应用范式

腾讯开源Hunyuan-1.8B-Instruct-AWQ-Int4&#xff1a;重塑边缘智能与企业级AI应用范式 【免费下载链接】Hunyuan-1.8B-Instruct-AWQ-Int4 腾讯开源Hunyuan-1.8B-Instruct-AWQ-Int4大语言模型&#xff0c;支持快慢双推理模式&#xff0c;原生256K超长上下文&#xff0c;优化Agen…