2011-10-05 76 views
0

我有頁面處理程序與95%的流量,它從數據庫中使用其鍵獲取模型,然後使用獲取模型中的字段填充Django模板。App Engine memcache速度「字典」與「類對象」

我想memcache提取的模型,以避免DB讀取。並非模型中的所有字段都用於模板中,因此我想將其緩存到所需的域中以提高緩存利用率,並將更多此類模型放入緩存中。

所以我想在字典或'class boject'中只用模板中需要的字段來轉換模型。

Memcache使用pickle來序列化值,所以爲了序列化的目的,這將是更快的字典或'類對象'?

+0

你的意思是'類對象'? –

+0

@ShayErlichmen修正錯字比抱怨更快。 –

回答

1

您需要測量,但對於所有預期的目的,結果應該是它的速度大致相同。
如果任何方法趨於更快,我真的不認爲它會影響你的整體表現那麼多。 您的主要延遲將是對memache的RPC調用,這可能是兩個因素比最慢的序列化慢。

1

您應該考慮在模型類上定義__getstate__/__setstate__方法,以便您可以只選擇要緩存的模型的屬性,並簡化實現過程;您的untickled數據作爲模型的實際實例到達,而不是站點,您必須以某種方式以另一種方式進行轉換。

+0

感謝您的線索,坦克大量TokenMacGuy – Tiwari

2

都不!相反,緩存實體協議緩衝區,如described here

您可能需要考慮切換到NDB,它已經內置了對memcaching模型實例的支持。

+0

HI尼克, 非常感謝,不僅對於這個答覆,而且對於你的偉大的博客, – Tiwari