我谷歌搜索了一段时间,什么也没找到。
在处理DOM或PDO等内部对象时,是否可以使用memcache缓存它们?
我理解PDO可能是无关紧要的,因为连接在脚本结束时关闭 - 这可以改为持久连接 - 使缓存更可行???
但是真的困扰我的是,缺乏关于是否可以缓存DOM对象的内存中表示的文档。 XML配置文件可能非常冗长,并且构建DOM的每个请求加载这些文件可能会严重影响服务器资源。
任何人都有使用缓存的经验,特别是DOM对象?我是否应该选择重新解析DOM的PHP实现,每次请求都不需要初始化DOM?
答案 0 :(得分:0)
您可以缓存PDO实例。您必须扩展PDO类并实现__wakeup
和__sleep
魔术方法。
在__sleep()
之前调用serialize()
方法,在__wakeup
期间调用unserialize()
(在手册中不会预先设定)。
在Memcache反序列化后,您将使用__wakeup
方法重新建立连接。
我认为对缓存PDO实例没有太多兴趣。
大多数核心对象无法缓存。这是因为它们没有正确序列化。只有实现Serializable
接口的类的实例才可以。
如果班级只有公共属性,也许在某些情况下它可以工作。