2013-04-09 57 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