【问题标题】:Dedicated memcache vs shared memcache (python, google appengine)专用内存缓存与共享内存缓存(python、google appengine)
【发布时间】:2014-02-15 12:00:26
【问题描述】:

所以基本上,我正在尝试决定是否应该使用专用的内存缓存。

我的场景如下: 我正在开发一个为一些公共数据提供实时分析的应用程序。 我将维护总共 15kb 的键/值内存缓存(20 个键,变量值) 同时值在不断变化(每 3 秒更新大约 20 个键/值的总数) 对网站的点击将执行对这些密钥的请求(也大约每 3 秒请求一次)

我假设有 10000 个用户立即访问该网站,这将每 3 秒产生大约 20 * 10000 个请求。

考虑到 memcache 的大小(相对较小),以及每秒大约 7000 个请求的数量(memcache 键/值访问),对于这种情况,专用的 memcache 是否会更“规避风险”。 谢谢,

【问题讨论】:

  • 即使您使用专用的内存缓存,由于您无法控制的因素,您仍然会遇到缓存驱逐。只要您的应用程序可以运行/从缓存未命中中恢复,为什么不使用共享缓存对其进行分析,然后就缓存寿命与成本的改进做出明智的决定。
  • 目前正在努力,但我主要担心的是高流量与内存缓存访问

标签: google-app-engine memcached


【解决方案1】:

缓存的数据似乎对您的 Web 应用程序的正确运行至关重要。如果您丢失了数据,可能会对成千上万的用户造成伤害!希望您的应用还定期保存缓存数据并自动从缓存擦除中恢复。

尽管数据的大小很小,但共享内存缓存仍然比专用内存缓存在不可预测的时间驱逐部分或全部数据的风险更大。设计还必须正确处理部分数据丢失。不仅您的内存压力,而且来自其他应用程序和云操作因素的压力更有可能导致 AppEngine 丢弃共享缓存。

【讨论】:

    【解决方案2】:

    在这种数据大小的情况下,您不会从使用专用内存缓存中获得任何好处。

    您访问 memcache 的速率与此决定无关。

    【讨论】:

    • @Martin 我目前正在增强所有情况下的内存缓存持久性。同时,引起我注意的是以下性能提及:性能每 GB 每秒最多 10k 操作(项目 dedicated memcache,每秒 10k 操作不应该描述对 memcache 的访问速率吗? (或者在这种情况下可能只是写?)。
    • 所以基本上可以确认,虽然专用内存缓存更可靠,但对于
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 2011-06-10
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多