0

可能重复:
Google App Engine:Memcache 或静态变量?

memcache 和每个类(实体类型)静态映射(除了可识别的值、未触及的检查、统计信息和命名空间)之间有什么区别吗?!

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

在某种程度上,静态映射看起来很有利,例如 - 它允许我们定义和使用特定类型的 HashMap - 静态 map.put 不会失败,而 memcache.put 是不可靠的

4

1 回答 1

1

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

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

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

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

于 2012-10-17T11:32:39.127 回答