首页 游戏 软件 资讯 排行榜 专题
首页
科技数码
PostgreSQL 18进阶指南:用原生方案替代Redis构建无缓存架构

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

热心网友
31
转载
2025-12-01

关于缓存,我的立场并非全盘否定。当你需要处理跨请求协调、速率限制,或是在不同服务间进行扇出扇入操作时,缓存或消息总线依然是可行的解决方案。我只是在那些因其掩盖优化器错误、增加查询波动性的场景中将其剔除。一个坦诚的分享:我曾尝试通过降低 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
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

Redis缓存雪崩终极指南:6招避免系统全线崩溃
科技数码
Redis缓存雪崩终极指南:6招避免系统全线崩溃

抓住“避免缓存缺失、控制并发查库、保护数据库”这三个关键点,就能应对绝大多数高并发挑战。 上一篇推文《缓存击穿:热点Key突然“失踪”?这两招教你稳住阵脚!》结尾,我们预告了Redis缓存三大难题中

热心网友
02.13
Redis缓存穿透原理与解决方案详解,三大难题一次攻克
科技数码
Redis缓存穿透原理与解决方案详解,三大难题一次攻克

今天我们吃透了缓存穿透的原理、危害和解决方案,其实它和缓存击穿、缓存雪崩并称为“Redis缓存三大难题”——三者看似相似,实则核心差异很大,解决方案也各有侧重。 在Redis缓存的实际应用中,咱们常

热心网友
02.09
Redis大Key避坑指南:解决阻塞、服务崩溃等核心难题
科技数码
Redis大Key避坑指南:解决阻塞、服务崩溃等核心难题

今天,我们不拉清单、不列一二三,直接复盘一下:一个 50MB 的大 Key,是如何在几秒钟内完成“完美谋杀”的。 在后端圈子里,有个冷知识:击垮一个千万级并发系统的,往往不是黑客的攻击,而是某个程序

热心网友
02.03
探索Moltbook爆火:我们正亲历这个疯狂时代
AI
探索Moltbook爆火:我们正亲历这个疯狂时代

Agent 能做的真正有价值的事情,比在灌水论坛里抖机灵多太多了。Redis 作者 Antirez 用 Agent 20 分钟搞完了自己以前需要写一个周的 Streams internals 功能,

热心网友
02.02
深入Redis:手写底层代码的核心原理与实战解析
AI
深入Redis:手写底层代码的核心原理与实战解析

新智元报道编辑:倾倾【新智元导读】昨夜,编程界「最后一位武士」Antirez放下手中刀:手工写码,已不再明智。当Redis之父都开始把代码外包给Claude,你还在固执「纯手写」?别做2026年的「

热心网友
01.25

最新APP

你说我猜
你说我猜
休闲益智 03-31
史莱姆农场
史莱姆农场
休闲益智 03-31
凡人传说
凡人传说
角色扮演 03-30
恶魔秘境
恶魔秘境
角色扮演 03-29
猫和老鼠华为
猫和老鼠华为
休闲益智 03-29

热门推荐

Zombie ZIP 漏洞披露:让 WinRAR/7-Zip 解压报错,已伪装绕过 50 款主流杀软
业界动态
Zombie ZIP 漏洞披露:让 WinRAR/7-Zip 解压报错,已伪装绕过 50 款主流杀软

Zombie ZIP漏洞披露:让WinRAR 7-Zip解压报错,已伪装绕过50款主流杀软 最近,网络安全圈被一项名为“Zombie ZIP”的新型攻击技术搅动。Bombadil Systems的研究员Chris Aziz最新披露的这项技术,利用了一个狡猾的漏洞,不仅能成功绕过VirusTotal平

热心网友
03.31
我用OpenClaw,5分钟给OpenClaw提了一个issue,你猜怎么着?(第四讲)
AI
我用OpenClaw,5分钟给OpenClaw提了一个issue,你猜怎么着?(第四讲)

《OpenClaw100讲》 3 应用篇:提issue 最近在深入使用OpenClaw,积累了一些实用心得,打算通过这个系列持续分享,暂定100讲,希望能对大家有所启发。 说来也巧,就在昨天实际使用OpenClaw时,意外发现了一个小Bug。于是,我按照流程给官方提交了一个issue。结果如何?过

热心网友
03.31
深入分析4个潜力迷因币:谁能在牛市突出重围?
web3.0
深入分析4个潜力迷因币:谁能在牛市突出重围?

2025 年夏季,加密市场再度进入活跃周期 时间来到2025年盛夏,加密市场的温度计又一次开始飙升。这一次的活跃周期,呈现出清晰的三线并进格局:老牌资产XRP率先发力,一举打破长达数年的盘整僵局,创下历史新高,为整个市场注入了强心剂。与此同时,迷因板块也非一家独大,PEPE凭借稳健的涨势和持续的资金

热心网友
03.31
毒液突击队寻金者成就怎么解锁-寻金者成就解锁指南
游戏攻略
毒液突击队寻金者成就怎么解锁-寻金者成就解锁指南

《毒液突击队》寻金者成就解锁指南 在《毒液突击队》琳琅满目的成就列表里,“寻金者”算是个需要点耐心和技巧的目标。很多玩家都卡在了这一步,究竟怎么才能高效地把它拿下呢?其实关键就在于理解规则,并且找对方法。 毒液突击队寻金者成就怎么解锁 先直接说结论:这个成就的核心要求,是在一场“活动任务”过程中,亲

热心网友
03.31
苹果顶级服务!主动取消M4 MacBook订单:换成最新M5
iphone
苹果顶级服务!主动取消M4 MacBook订单:换成最新M5

苹果顶级服务!主动取消M4 MacBook订单:换成最新M5 最近科技圈有个挺有意思的事儿:苹果刚刚发布了搭载M5 Pro和M5 Max芯片的新款MacBook Pro,但就在发布前几天,居然还有用户下单购买了老款的M4 Max版本。你猜后续怎么着?苹果直接出手,给这些用户送上了一份“意外升级”。

热心网友
03.31