在简单的类似博客的文章中缓存 JSON 而不是现成的 HTML 会慢多少


How much slower would be to cache JSON instead of ready HTML in simple blog-like articles

我有一个简单的缓存系统,工作原理如下:1.编辑器转到管理面板,2. 输入数据,3.数据被保存到MySQL(为了更好地衡量)并放入HTML模板中。

模板本身是我页面的一部分,其中显示了文章(就像<article>...</article>一样)。以 {id} 的形式保存在 HTML 中.html

当用户进入页面/articles/22/时,我只需将相应的 HTML 页面include()到主模板。超级简单。

但这有点原始的IMO。我开始想知道将 JSON 与标题、内容、标签等字段一起存储,然后用 PHP 解析并放入模板不是更好吗?它给了我一些好处(比如可以将数据放在模板中的其他地方),但我的首要任务是速度。

所以 - 我的问题是:获取 JSON(预先保存在文本文件中)、使用 PHP 解析它并放入模板中是否比包含预先保存的 HTML 文件慢。我知道如果我们同时谈论 100 个请求,这里没有什么可怀疑的,但是如果我们谈论更多呢?或者也许我的方法根本不成熟,我应该坚持流行的"用户进入页面,你检查缓存文件是多久前创建的,你包含它或从SQL获取,如果它过期了"?我不喜欢这样。我只是不认为用户应该参与创建缓存文件的任何原因。它们唯一更改的时间是编辑器进行一些更改时,因此让他成为创建缓存文件的人。

使用通读缓存会让你走很长一段路。基本上,如果一个对象(可以呈现为HTML,json或任何在流中工作的对象)不存在于缓存中,您将读入数据库以构建它,一旦构建,您将将其存储在缓存中。

如果对对象进行了更改,则可以删除缓存,并在下次请求时重新生成缓存。

至于缓存,你可能想使用像memcached这样的东西,尽管apc也可以很好地工作。