综合讨论 [技术] 如何用“双层缓存”把页面加载做到极致

2026-08-27 15:20:31

引言

最近在打磨我的轻量级论坛系统(FlintHub),遇到一个很经典的问题:页面加载速度。我的系统是纯 PHP + SQLite,还自研了分片引擎(SplitDB),但页面查询次数一直降不下来,首页 28 次查询,虽然不算多,但总觉得还能再优化。

后来跟朋友聊天,随口说了一句:“把缓存放用户浏览器里,页面加载是不是更快?

结果聊着聊着,居然聊出了一个双层缓存架构。今天把这个思路分享出来,看看大家怎么看。


一、问题:缓存放哪?

传统的论坛系统,缓存一般只有一层:

  • 服务器缓存:数据存服务器(文件 / Redis / Memcached),所有用户共享,首次访问快,二次访问更快。

但服务器缓存有个天然瓶颈:每次页面渲染,都要从服务器读一次缓存。虽然比查数据库快,但还是要走网络,还是有延迟。

那能不能让用户浏览器也存一份缓存?


二、思路:双层缓存,各司其职

第一层:用户浏览器缓存(localStorage)

变化慢的数据(版块列表、插件列表、热门标签、友情链接)存在用户浏览器里。用户二次访问时,直接从本地读取,零网络请求,毫秒级加载

第二层:服务器缓存(托底)

如果用户浏览器没…

最後由 flinthub 於 2026-08-28 11:17 編輯
我喜欢在我的自留地里瞎逛,FlintHub!
| 瀏覽 0 | 回覆 2

全部回覆 (2)

2026-08-27 15:21:10

看看有没有建议或者想法?

我喜欢在我的自留地里瞎逛,FlintHub!
| 引用 #1 樓
2026-08-28 00:45:55
这个想法不错,你可以试试把结果跟我们说一下
| 引用 #2 樓

登入

×