2011-09-21 51 views
0

我正在开发一个应用程序在Java中托管在谷歌应用程序引擎中,我需要存储用户首选项(对象与10个字符串变量),直到他登录。我会经常使用这些数据(每两分钟一次用户)。我应该在memcache中使用数据存储还是有其他可扩展的方式?我期望流量非常高(一次可能达到50000人)。可以一次将50000个对象存储在内存缓存中吗?如何在用户只通过短信进行通信的应用中存储用户偏好?

这是一个短信应用程序,用户只能通过短信进行交互。所以我不能使用会话存储数据,因为我的流量通过短信网关路由。

回答

2

是不是O.K.在memcache中存储50,000个对象?当然,但正如其他人已经正确指出的那样,这是一个缓存,所以你最终也将数据存储在数据存储中。

往后退,在交互式应用程序中使用memcache的一个重要原因是为了更好的用户体验。如果您不得不将缓存从缓存中提取出来,您希望通过缓存来缩短响应时间,否则可能会引入明显的延迟。

这是值得做一个短信应用程序?与SMS基础设施的延迟相比,我敢打赌,memcachedatastore之间的时差几乎不可衡量。

我会尽可能保持您的应用程序尽可能简单,直到它工作,然后寻找优化机会。我认为你会发现他们更多的是确保你在查询中使用的属性是无索引的,这样你的写入速度会更快。

0

将它存储在会话中。 Memcache是​​一个缓存,不应该直接用于业务逻辑。

+0

忘了提及。它是一个短信应用程序,用户只通过SMS进行交互。因此,我不能使用会话存储数据,因为我的流量通过SMS网关路由。 – ravi

+0

然后自己创建会话层/逻辑并使用数据库(+ memcache)来存储它。 – ZeissS

+0

感谢您的答复。GAE中可以缓存memcached的对象的总大小是否有任何限制?例如100MB,因为我期望流量非常高,而且我需要存储一些50k的对象 – ravi

相关问题