PHP memcache内部对象

时间:2013-04-09 05:05:44

标签: php dom memcached

我谷歌搜索了一段时间,什么也没找到。

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

我理解PDO可能是无关紧要的,因为连接在脚本结束时关闭 - 这可以改为持久连接 - 使缓存更可行???

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

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

1 个答案:

答案 0 :(得分:0)

您可以缓存PDO实例。您必须扩展PDO类并实现__wakeup__sleep魔术方法。

__sleep()之前调用serialize()方法,在__wakeup期间调用unserialize()(在手册中不会预先设定)。

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

我认为对缓存PDO实例没有太多兴趣。

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

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