当前位置: 首页 > news >正文

为什么要少用本地缓存

没错本地缓存应该尽量少用。

大多数业务,并不值得为了那一点性能,引入本地缓存带来的复杂度。

我自己的原则一直都是:

能用数据库扛的,绝对不用缓存。能用中央缓存扛的,绝对不用本地缓存。

这其实也是一个软件设计原则:减少依赖,降低管理复杂度。

之前我还专门写过一篇内容:

好的架构,不一定是增加组件,而是敢于删除组件。经验丰富其厉害的程序员,还有一项本事,就是知道哪些东西暂时可以不用,以便降低系统的复杂度。 很多项目发展一段时间后,总喜欢不断往里面加组件。比如: 觉得 MySQL 慢,就上 Redis。 觉得要异步,就搞 MQ。 觉得以后可能有很多规则,就先上规则引擎。 其还得意的认为,每加一个组件,是在提升架构。实际上,也是在增加系统复杂度。 比如有些业务,访问量并不高,MySQL 完全能扛住,你却还是加了一层 Redis。你有大把的优化手…2 赞同 · 4 收藏 · 0 评论 想法

感兴趣的可以去看一下。

下面我先给你看两个真实的例子。

第一个,是我以前做过的商品服务。

大促的时候,瞬时百万并发。很多人看到这个量级,第一反应就是:本地缓存肯定少不了。

实际上并不是,我们只有在大促那半个小时,才会临时开启本地缓存,平时,本地缓存一直都是关闭的。

为什么?

因为维护几十台机器上的本地缓存,让它和数据库、Redis保持一致,难度很高。

数据更新以后,要通知几十台一起更新或者删除缓存。少处理一台,就是脏数据,或者网络抖动一下,也可能出现数据不一致。

第二个例子,是亿级用户的购物车服务。

也是一样。只有品牌部门发公众号、大型促销活动、热点流量突然暴涨的时候,我们才会临时开启本地缓存。

活动结束以后,又关闭,其他时间,一直都是Redis扛。

原因还是一样。Redis已经足够快了。没有必要为了几十微秒甚至几百微秒的优化,去承担缓存一致性的复杂度。

另外还有一个很多人容易忽略的问题,就是gc问题。 本地缓存会占用JVM堆内存。如果控制不好容量,很容易导致Full GC。

当然,也可以使用堆外缓存。但我的建议是:功力不到家,不要随便用堆外缓存。

我们当时为了使用堆外缓存,是专门安排人研究了很长时间,做了很多轮压测,确认稳定以后,才敢上线。

否则,一个缓存优化,最后可能变成新的故障来源。

我个人建议是,把当前的代码进行优化,直到瓶颈真的到了,才考虑去引入缓存。

http://www.jsqmd.com/news/1247057/

相关文章:

  • 深入解析TI RM57L Hercules开发套件硬件设计与实战配置
  • AI编程助手性能对比:Kimi K3前端优势与Claude数学能力分析
  • WhatsApp Cloud API 速率限制下的令牌桶与退避策略实践
  • 2026 杭州奢侈品回收哪家正规?易奢福杭州 12 区 100 + 门店连锁,正规备案 - 奢侈品回收探店ing
  • 3D LUT Color Conversion之总体架构设计之二
  • 工业PLC编程数字员工的技术实现:从梯形图语义理解到编程软件自动化操作
  • 实战部署服务器NVIDIA driver+CUDA-toolkit
  • Linux实时调度策略:SCHED_FIFO与SCHED_RR详解
  • 元器件交期拉长成常态,采购如何重建供应链韧性?
  • 舞蹈视频AI分析工具:从动作识别到场景分割的本地部署实践
  • 从数据标签到关联洞察:结构化分析方法与实践指南
  • rust高并发设计实践
  • 跨界应用SMPTE 259M标准:利用视频技术实现270Mbps长距离数据通信
  • AI记忆协作系统:分布式架构与智能增强技术解析
  • 开源AI Agent与OMO多Agent编排引擎实战指南
  • 【题解-信息学奥赛一本通】1358:中缀表达式值(expr)
  • 7.5 其他工具生态《AI智能体应用开发》
  • 异步数据流水线与智能批处理:高性能数据处理架构解析
  • 在虚幻引擎蓝图中集成Rust:高性能模块与可视化脚本的融合实践
  • 提示工程架构设计:企业级AI交互的质量规范与实践
  • 市场封装齐全的AI算力芯片测试座生产商适配性强
  • Claude Code 使用限额提升50%:安装配置与高效使用全指南
  • 给 Claude Code 装上眼睛 - 聊聊 code intelligence plugin
  • 2026燕顺路街道彩色纸箱厂家推荐,纸箱包装厂家哪家好?源头工厂选购指南与避坑实用攻略 - geo88
  • 数据库日期类型转换:从字符串到datetime的实战指南
  • 数据类型与变量常量(下)
  • 多格式转换工具:从原理到实践,打造高效工作流
  • 服务接待中心与微服务网关
  • 多模态医学图像融合技术在精准医疗中的应用与实现
  • 数字时代的字符编码与字体显示问题解析