I know this is a very vague question, but I'm looking for a very abstract answer. Since I started using GAE a few months ago, I've always shrugged off memcache as not useful and an uncessessary hassle, that it's really not that important. But it seems that memcache is praised as a highly beneficial feature, that Google even says "High performance scalable web applications often use a distributed in-memory data cache in front of or in place of robust persistent storage for some tasks.", and so I thought that there must be something worth looking into about this.
I just don't get it. How is it good for performance? First you have to check if something is in memcache, and if not, query. I always thought it would just be quicker to not have to deal with that, and just query anyway, but it seems this may be a naive approach? How much of a difference does this make?
I guess what I never understood is where memcache is useful. I can see how it can be useful in say the Stackoverflow home page, where all users pretty much see the same thing, so it would be useful, in fact silly not to use memcache in a situation like that. But say a social network like Facebook. Every user sees something different. No two people see the same data and content, and things change so fast that memcache would probably constantly need to be updated. What role can memcache play in such a scenario?
Also, in a private website like a social network, how much can memcache really fit if every user has to store different information in memcache? I know GAE doesn't speak of the size of its memcache, so would it be safe to store hundreds of thousands of records?