如何提高我的内存缓存命中率?

How can I increase my memcache hit ratio?

对于我的 Appengine 应用程序,我的内存缓存命中率只有 40%,但我经常使用它。我可以使用 appstats 来分析我的应用程序,看看为什么我没有获得更好的命中率吗?提高命中率的策略是什么? APP用多了点击率会上升吗?如果我使用更多性能分析工具,是否可以对我的应用程序进行更多分析?我应该增加还是减少内存缓存中的项目数量?

听起来您的缓存请求中有 60% 是一次性未命中,而 40% 是对同一项目的多次请求。对于像 Facebook 这样拥有十亿项数据库的公司来说,这还算不错。

查看缓存请求,看看是否可以使用大量此类项目来填充缓存。也就是说,用最流行的项目加载缓存,以便后续对它们的请求被命中。

如果项目之间有任何联系,您可能希望将相关项目添加到缓存中。例如,如果对项目 A 的请求之后是对项目 A1 和 A2 的请求,那么您可以在第一个请求时将所有三个项目加载到缓存中。这可以称为 "smart priming".

一般来说,该策略是预测将要请求的内容并用这些项目填充缓存。您的数据在请求日志中。