2012-10-17 36 views
0

可能重複靜態地圖:
Google App Engine: Memcache or Static variable?內存緩存與每個實體類型

有(內存緩存和每類(實體類型)靜態地圖之間有什麼區別,除了識別值,不變檢查,統計和命名空間)?

靜態存儲也有1MB的限制?這個1MB是否與memcache共享?

在某種程度上,靜態地圖看起來是有利的,例如, - 它允許我們定義和使用特定類型的HashMap - 靜態map.put不能失敗,那裏的memcache.put是不可靠的

回答

1

(以下假定您問的是內存緩存與數據存儲之間的權衡,而不是運行時實例中的內存緩存和靜態變量;後者在Thilo's link中解決。)

使用memcache服務的原因是它顯着平均而言,比數據存儲更快。例如,考慮昨天的統計數字datastorememcache。對於數據存儲,平均得到約32ms的操作,放置約35ms,並刪除60ms。對於memcache,大約是8ms,17ms和10ms。 (此外,這些統計數據基於測試操作,對於memcache,這些測試操作大約大5倍)。如果延遲或實例小時對您的應用程序很重要,則memcache可能非常有用。

也就是說,memcache並不可靠。您應該始終假定寫入memcache的數據可能隨時消失,並且原因無法控制。數據存儲操作有效地保證是永久性的。

簡而言之:如果正確性對您的需要非常重要,那麼使用數據存儲;如果速度是最基本的,則使用memcache。更好的是,同時使用!

+0

不,我的問題不是關於數據存儲與Memcache的關係。 –