【问题标题】:App Engine Memcache a single value shared across all instancesApp Engine Memcache 跨所有实例共享的单个值
【发布时间】:2016-04-03 20:33:31
【问题描述】:

我需要在 Google App Engine 中跨所有实例共享一个 MemCache 密钥。该键用于高速读取和递增(500 / 秒)。

Google 建议不要使用“热键”,而是建议使用数据存储。 由于我无法通过数据存储区中的单个命令来增加或减少值,因此这对我来说不可用。

我还有什么其他选择?

谢谢

【问题讨论】:

  • 你明白 memcache 是用于临时值的吗?它可能在任何不可预知的时刻丢失
  • 为什么要临时?专用的内存缓存可以保证持久性不是吗?
  • @Forepick:专用内存缓存只能(小心)防止因内存压力而被驱逐,但还有其他原因导致内存缓存值消失,即使是专用内存缓存 - cloud.google.com/appengine/docs/python/memcache/…(以及下一节)。

标签: java google-app-engine memcached


【解决方案1】:

您正在寻找的是所谓的分片计数器。

基本上,您需要一些CounterShard 实体来存储价值。您将增量步骤分解为独立的计数器,然后在需要时加载并汇总所有值(它很便宜)。

500/秒我猜你需要多达 100 个分片,但我建议你做一些实验来找到最佳价值。

有完整的例子可以使用它:https://cloud.google.com/appengine/articles/sharding_counters

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多