memcache与每个实体类型的静态映射

时间:2012-10-17 09:21:32

标签: google-app-engine memcached

  

可能重复:
  Google App Engine: Memcache or Static variable?

memcache和每个类(实体类型)静态映射之间是否有任何区别(可识别的值,未触及的检查,统计信息和名称空间除外)?!

静态存储还有1MB的限制?这个1MB是否与memcache共享?

在某种程度上,静态地图看起来很有利,例如,    - 它允许我们定义和使用特定于类型的HashMap    - static map.put不能失败,因为memcache.put是不可靠的

1 个答案:

答案 0 :(得分:1)

(以下假设您要询问内存缓存与数据存储之间的权衡,而不是运行时实例中的内存缓存和静态变量;后者在Thilo's link中得到解决。)

使用memcache服务的原因是它平均比数据存储快得多。例如,请考虑昨天datastorememcache的统计信息。对于数据存储区,获取平均大约32ms的操作,放置约35ms,并删除60ms。对于memcache,它大约是8ms,17ms和10ms。 (此外,这些统计数据基于测试操作,对于memcache来说大约是5倍)。如果延迟或实例小时对您的应用程序很重要,则memcache非常有用。

那就是说,memcache不可靠。您应该始终假设写入memcache的数据可能随时消失,并且由于您无法控制的原因。而数据存储操作有效地保证是永久性的。

简而言之:如果正确性对您的需求至关重要,请使用数据存储区,如果速度至关重要,则使用memcache。更好的是,使用两者!