0

我用谷歌搜索了一段时间,一无所获。

在处理 DOM 或 PDO 等内部对象时,是否可以使用 memcache 对其进行缓存?

我知道 PDO 可能无关紧要,因为连接在脚本末尾关闭 - 这可以更改为持久连接 - 使缓存更可行???

但真正困扰我的是,缺乏关于是否可以缓存 DOM 对象的内存表示的文档。XML 配置文件可能非常冗长,并且每个请求加载这些配置文件、构建 DOM 可能会严重占用服务器资源。

任何人都有缓存经验,特别是 DOM 对象?我是否应该选择一个 DOM 的 PHP 实现,只是重新解析,初始化 DOM 不是每个请求都需要的吗?

4

1 回答 1

0

您可以缓存 PDO 实例。您将不得不扩展 PDO 类并实现__wakeupand__sleep魔术方法。

__sleep()方法将在之前serialize()__wakeup期间调用unserialize()(在手册中没有精确说明)。

您将使用该__wakeup方法在 Memcache 反序列化后重新建立连接。

我认为缓存 PDO 实例并没有太大的兴趣。

大多数核心对象不能被缓存。这是因为它们没有正确序列化。只有实现接口的类的实例才Serializable可以。

如果类只有公共属性,也许在某些情况下它可以工作。

于 2013-04-09T06:03:42.253 回答