【发布时间】:2012-10-15 05:03:20
【问题描述】:
我知道这是一个非常模糊的问题,但我正在寻找一个非常抽象的答案。自从几个月前我开始使用 GAE 以来,我一直认为 memcache 没有用,而且会带来不必要的麻烦,因为它真的没那么重要。但似乎 memcache 被称赞为一个非常有益的功能,谷歌甚至说“高性能可扩展的 Web 应用程序通常使用分布式内存数据缓存来代替强大的持久存储来完成某些任务。”等等我认为这一定有一些值得研究的地方。
我只是不明白。它对性能有什么好处?首先你必须检查内存缓存中是否有东西,如果没有,查询。我一直认为不必处理它会更快,无论如何都可以查询,但这似乎是一种幼稚的方法?这有多大的不同?
我想我一直不明白 memcache 的用处。我可以看到它在 Stackoverflow 主页上的用处,所有用户几乎都看到相同的东西,所以它会很有用,实际上在这种情况下不使用 memcache 是愚蠢的。但是说像Facebook这样的社交网络。每个用户都会看到不同的东西。没有两个人看到相同的数据和内容,而且事情变化如此之快,以至于 memcache 可能需要不断地更新。在这样的场景下,memcache 能起到什么作用?
另外,在像社交网络这样的私人网站中,如果每个用户都必须在 memcache 中存储不同的信息,那么 memcache 到底能适应多少?我知道 GAE 没有提到它的内存缓存的大小,那么存储数十万条记录是否安全?
【问题讨论】:
-
"memcache" = 内存缓存。内存访问可以比查询数据库快几个数量级,数据库的数据可能在磁盘上。缓存本质上会获取最常访问的对象。
-
我推荐你在谷歌上使用这个词“memcached at facebook”你会发现很多很好的信息。
标签: google-app-engine webserver memcached