2014-02-15 79 views
2

所以基本上,我試圖決定是否應該去專用的內存緩存。專用memcache vs共享內存緩存(python,谷歌appengine)

我的場景如下: 我正在爲一些公共數據提供實時分析的應用程序。 我將保持總共15kb的鍵/值memcache(20個鍵,變量值) 同時值不斷變化(總共鍵/值大約每20秒更新20次) 點擊到網站將執行這些鍵的請求(也圍繞每3秒的請求)

我假設10000用戶立即擊中網站,這將產生約20 * 10000每3秒的請求。

考慮到memcache的大小(相對較小),而且產生的請求數量大約爲7000 /秒(memcache鍵/值訪問),專用memcache將成爲更多的「風險厭惡」交易。 謝謝,

+0

即使您使用專用的內存緩存,由於無法控制的因素,仍然可能會遇到緩存驅逐問題。只要您的應用程序可以從緩存未命中運行/恢復,爲什麼不將它與共享緩存進行配置,然後就緩存的使用壽命與成本之間的關係做出明智的決定。 –

+0

目前正在使用它,但我主要關心的是高流量vs memcache訪問 – abad

回答

1

使用此數據大小,您將不會從使用專用的內存緩存中獲得任何好處。

訪問內存緩存的速率與此決定無關。

+0

@Martin我目前在所有情況下都增強了我的memcache持久性。同時引起我注意的是以下性能提及:性能高達每秒每秒10k次操作(項目<1KB)[專用內存緩存](https://developers.google.com/appengine/docs/adminconsole/memcache),每秒10k操作數不應該描述對memcache的訪問速率? (或者這可能只是寫在這種情況下?)。 – abad

+0

所以基本上,雖然專用的memcache更可靠,但對於小型memcache <1 MB,我可以實現持久性機制,不斷檢查我的memcache的健康狀況並提供足夠的響應(即使在非常高的通信環境下)。 – abad

2

緩存數據似乎對您的Web應用程序的正確操作至關重要。如果您丟失了數據,可能會對成千上萬的用戶造成傷害!希望您的應用程序還會定期保存緩存的數據並自動從緩存擦除中恢復。

雖然數據量很小,但共享內存緩存比專用內存緩存在不可預知的時間驅逐部分或全部數據的風險更大。該設計還必須正確處理部分數據丟失。不僅您的內存壓力,而且來自其他應用程序和雲操作因素的壓力都可能導致AppEngine丟棄共享緩存。