游乐游手机版
首页/科技数码/文章详情

PostgreSQL 18进阶指南:用原生方案替代Redis构建无缓存架构

时间:2025-12-01 22:37
我并不是反对缓存。如果你需要跨请求协调、速率窗口,或者跨服务的扇出扇入操作,缓存或消息总线仍然有其用武之地。我仅在它掩盖了规划器错误并增加了方差的地方移除了它。一个诚实的承认:我曾尝试通过降低 sy

关于缓存,我的立场并非全盘否定。当你需要处理跨请求协调、速率限制,或是在不同服务间进行扇出扇入操作时,缓存或消息总线依然是可行的解决方案。我只是在那些因其掩盖优化器错误、增加查询波动性的场景中将其剔除。一个坦诚的分享:我曾尝试通过降低 synchronous_commit 参数来提升性能,但最终还是撤销了这项调整——对这条路径而言,写入语义层面的风险实在不值得冒险。

我在生产环境中停用了 Redis,并且从未回滚这一决定。”

每当想起这句话,我内心仍然会感到一阵紧张——毕竟缓存就如同系统的一条安全绳。但在 PostgreSQL 18 上经过大量谨慎测试后,p95 响应时间显著下降,系统架构更加简洁,值班团队的压力也随之减轻。

风险是真实存在的:用户会话、结算流程、我们的口碑信誉。

收益同样是真实的:更少的活跃组件、更少的告警短信。

下面我将分享自己的实践历程:我优化过的查询语句、关于唯一键的示意图,以及几个起到关键作用的小配置。

一、关闭缓存开关那一天

我们的热路径是一个参数化的产品查询,并附带一定的个性化特征。

缓存确实帮我们提高了命中率,但未命中的情况却相当棘手,而且序列化操作还额外增加了工作量。

我对这条路径进行了端到端的分析,随后尝试了一个更直接的数据库方案——使用更紧凑的索引和预先计算好的投影。

第一次运行结果令人心惊胆战……但随后数据逐渐稳定下来。

我让缓存停用了一个完整周期,见证了图表曲线最终趋于平静的过程。

二、Postgres里到底发生了什么

没有深奥的玄学,只有两件落地的事情:

1、覆盖度与选择性

覆盖索引配合生成列,让优化器能够只获取我们需要的字段,不再触及堆表。

2、预计算形态

物化视图(支持并发刷新)将原先依赖缓存隐藏的高昂聚合计算任务承接了过来。

PostgreSQL 18 凭借更智能的执行计划以及可预测的I/O完成了其余工作。

三、那个让Redis变得多余的查询

下面的表结构映射了一条常见的Feed流或目录切片场景:商品信息、软删除标识、新鲜度标记、个性化键值。

重点不在于字段名称,而是"生成列+覆盖索引"的组合完美匹配了返回结果。

应用程序调用随后变成了单次往返:

简而言之:规划器停留在索引层面,堆表保持"冷状态",视图从热路径中移除了沉重的聚合操作。

四、从源头削减延迟

两个小的配置调整起到了重要作用。它们并非万能药,但确实让I/O保持稳定,并使优化器能够可靠地利用索引和并行性。

如果你在更快的本地NVMe上运行,设置较低的random_page_cost能保持索引扫描的吸引力。track_io_timing则会在你对自身磁盘性能判断有误时给出提示。

五、我是如何测量的

我运行了一个简单的客户端,它发出了我们通常会缓存的那组参数。下表来自我的测试环境,经过3次预热运行,显示的是中位数数据。网络跳数和序列化开销比人们预期的要多得多。

在我们的信息流端点测试中,直接的数据库路径击败了缓存未命中情况下的尾部延迟,同时消除了命中与未命中之间的悬崖式差距。那个差距过去常常出现在用户追踪记录和支持工单中。

六、前后对比,用ASCII图绘制

一个说服团队的过程流程图:

我们仍然保留了只读副本以确保安全,但热路径现在只有一个依赖项。

七、何时缓存仍然占优

我并不是反对缓存。如果你需要跨请求协调、速率窗口,或者是跨服务的扇出扇入操作,缓存或消息总线仍然有其用武之地。我只是在它掩盖了优化器错误并增加了方法差异的地方将它移除了。一个诚实的承认:我曾尝试通过降低synchronous_commit来榨取更多性能,但后来撤销了,因为对于这条路径来说,写入语义的风险不值得去冒。

八、我保留的可直接复用的更改

这些是实验结束后保留的两个应用层面的部分。

1、应用查询形态(SQL预处理语句),而非ORM猜测

参数顺序稳定的预编译语句使得执行计划稳定且解析迅速。它们也明确了需要什么索引。前面的代码块展示了fetch_slice和fetch_trending;那就是实际部署的代码。

2、适度、常规的刷新节奏

刷新mv_trending的作业每隔几分钟运行一次,使用CONCURRENTLY以保持读取端的流畅。没有复杂的cron技巧,没有失效风暴。

九、这对你的团队意味着什么

如果你的缓存只是为了掩盖源站慢读,请先尝试修复源站。

将查询完整覆盖,只预计算真正昂贵的部分。

关注p95分位点,别看平均值。

如果直接走数据库能击败缓存未命中的长尾,并减少运维痛苦,就让更简单的架构胜出。

作者│The Atomic Architect 编译│Rio

来源│网址:https://medium.com/@the_atomic_architect/postgresql-18-killed-my-cache-layer-and-i-am-not-bringing-it-back-764496b2a9a5

来源:https://www.51cto.com/article/827569.html
上一篇梅赛德斯-奔驰第13届对话会:践行双碳使命,共绘绿色发展蓝图 下一篇丰田全新RAV4智能升级:如何实现零死亡零事故目标
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
OpenClaw手机App上线,结果翻车了
科技数码 · 2026-07-01

OpenClaw手机App上线,结果翻车了

OpenClaw 官方宣布,已正式推出 iOS 和 Android 原生移动 App,用户如今可以在手机上使用这款主打“能真正帮你做事”的个人 AI 助手。官方在 X 上给出的定位也很直接:把 Agent 放进口袋里,让用户可以在移动端处理频道消息、任务和回复。从功能上看,OpenClaw 移动端并

优必选CEO周剑:家庭机器人生态核心投入过半精力
科技数码 · 2026-07-01

优必选CEO周剑:家庭机器人生态核心投入过半精力

先说几个核心判断:优必选正在布局一盘长远战略。创始人兼CEO周剑在近期一场媒体沟通会上,直接亮出了公司未来的发展路线——工业、商用、家庭陪伴机器人三条业务主赛道并行推进,现阶段每条线各占约一半精力。一边是已经能够稳定创造收入的工业场景,另一边则是他眼中“最具想象力与未来空间”的家庭陪伴领域。工业人形

CPO/NPO/OIO开启封装级光连接价值空间,技术路线尚未收敛
科技数码 · 2026-07-01

CPO/NPO/OIO开启封装级光连接价值空间,技术路线尚未收敛

6月30日,申银万国在光连接系列研报中重点指出,MPO光连接器领域的投资机会值得高度关注。通俗来说,随着AI算力集群持续扩张,光互联升级带来的连锁效应——数据中心光纤通道数量、前面板端口密度、机柜内光纤管理复杂度——均在同步攀升。光连接器的角色早已超越传统的低价值标准件,如今它直接决定着链路插损、可

龙岗AR实景剧本游内测体验短板有效破解之道
科技数码 · 2026-07-01

龙岗AR实景剧本游内测体验短板有效破解之道

在今年龙岗区第二届人工智能与机器人发展大会上,区级部门一次性推出了7个AI“龙搭子”。其中,名为“龙导游”的成果成为文商旅融合领域的核心亮点。据南都N视频记者了解,依托“龙导游”打造的全区全域AR实景剧本游“龙岗大陆”,已在今年五一假期发布了内测版本。经过一个月市场验证后,该项目正式启动面向全社会的

南下资金6月30日净买入中芯国际与建滔积层板
科技数码 · 2026-07-01

南下资金6月30日净买入中芯国际与建滔积层板

6月30日,南下资金持续大举买入港股,单日净流入金额高达58 95亿港元。接下来,我们直接盘点哪些个股获得资金青睐、哪些遭到减持: 净买入方面,中芯国际领跑全场,单日吸金19 33亿港元;建滔积层板紧随其后,净买入10 59亿港元;腾讯控股获得7 65亿港元净流入;智谱(02513 HK)也有6 5