2009-07-11 52 views
3

我一直在尋找不同的系統來在運行Python/mod_wsgi的web-farm中創建快速緩存。內存緩存和其他人的選擇......但我想知道:Python/mod_wsgi服務器全局數據

因爲我並不需要共享整個計算機的數據,希望各機保持本地緩存...

不Python或WSGI提供Apache中的Python本地共享數據的機制,以便數據在所有線程/進程中保持並可用,直到服務器重新啓動?這樣我就可以在所有正在運行的應用程序實例的內存空間中保留具有併發控制的對象緩存?

如果不是,它肯定會有用

謝謝!

回答

1

有Django的線程安全的內存中緩存後端,請參閱here。它基於cPickle,雖然它是專爲與Django一起使用而設計的,但它對Django其餘部分的依賴性很小,您可以輕鬆地重構它以刪除它們。很顯然,每個進程都會得到自己的緩存,在其線程之間共享;如果你希望在同一臺機器上的所有進程共享一個緩存,你可以在你自己的進程中使用這個緩存,並使用你選擇的IPC接口(比如域套接字),或者在本地使用memcached,或者,如果你想要持久化整個重啓過程中,像Tokyo Cabinet這樣的Python接口,如this

+0

+1 ...看起來不錯,是不是cPickle應該很慢? – 2009-07-11 15:58:54

+0

啓動和運行可能很容易,因此您可以對其進行基準測試,看看它是否符合您的需求。很明顯,如果Python-to-Python在同一個進程中,那麼你根本不需要麻煩串行化條目 - 它就像一個帶有緩存過期策略的大字典。 – 2009-07-11 16:06:23