2012-11-18 119 views
0

我有一個網站,它使用了大量的查詢,因此需要cahce。因爲我使用內置的高速緩存中的httpruntime不時地重新編譯(bug fixex和新版本),導致我的緩存數據被刪除。我看了一下Memcahced,它說:「Memcached是一個內存中用於小塊任意數據(字符串,對象)的鍵值存儲」。我的應用程序需要存儲幾個密鑰,但每個鍵的大小並不那麼大(最大的對象可以包含幾千條記錄的列表,但通常它是具有20-30個屬性的對象)。 memcached是否適合我的需求?asp.net網站需要memcached

回答

1

我想這裏有幾個問題。您嘗試緩存的數據有多大?在1.4.2之前,memcache每個項目的限制爲1mb。雖然您現在可以存儲更大的記錄,it's not recommended。你的「幾千條記錄」有多大?只要你有合理的大小,那麼是的,memcached可能是有用的,並滿足你的需求。它運行良好,可擴展,並且可以在工作人員之間共享緩存數據。

是不是使用HttpRuntime緩存的全部原因,因爲它有時會被清除?因爲memcached也可以。這兩個都不是持久性存儲,雖然您可以設置無限到期時間herehere,但任何新版本的memcached,重新啓動等原因都可能導致緩存清除。

+0

但爲了解我的理解,memcahced並不會在每次重新編譯並將新版本上傳到服務器時清除。不是嗎? –

+0

一些論壇帖子和答案表明,在升級過程中刷新緩存是一種很好的做法。我只是好奇,你多久升級這些服務?緩存並不意味着堅持數據,它應該防止你不得不反覆運行昂貴的查詢。無論您使用哪種提供程序,都會有數據不在緩存中。 – mfanto