2013-04-09 36 views
0

我试图缓存一个查询(DocumentSet)的结果,希望提高我的客户端应用程序的性能。锂PHP文档集缓存

因此,在查找应用程序之前,将检查是否存在适当的缓存键,如果存在,则服务而不是击中数据库。

在我看来已经很简单了,但是在实现时我得到的都是超时。

看来应用程序在将DocumentSet对象存储到缓存中时遇到问题?

很可能我想的东西令人眼花缭乱的视...

感谢您的帮助。

+0

你能分享一些代码,以便更容易地看到问题出在哪里吗? – Nervetattoo 2013-04-10 07:37:40

回答

0

所以,我无法解释为什么,但我无法缓存文档集。我不得不缓存documentset-> to('array')。然后,在从缓存中读取时,通过传递模型模式和缓存数组来创建一个新的DocumentSet对象,并返回该对象。

似乎工作得很好,如果不如我所希望的那么优雅的话。

+0

这正是我所做的。问题是数据库中的DocumentSet引用一个游标,并没有从服务器上拉下所有的文档。当你将它转换为数组时,它会确保它遍历游标来获取所有数据。 – rmarscher 2013-04-11 13:26:00

+1

假设你使用MongoDB,注意数组转换将你的MongoId和MongoDate对象转换为字符串和unix时间戳。这听起来像你有一个模式,所以如果定义正确,那么当你将文档从重建的DocumentSet中取出时,它将正确地转换一切。我在我的基本模型中创建了一个'dataNoCast'方法,当我不希望使用这些原生mongo对象时。我会在一分钟后发表一个主题。 – rmarscher 2013-04-11 13:30:12