Appengine:使用memcache计数器

时间:2012-09-30 18:11:58

标签: algorithm google-app-engine go

我想在App Engine上实现计数器。显而易见的方法是使用memcache来实现此目的。但docs说memcache不可靠,我必须实现回退方法,以防memcache中的计数器有错误的值或丢失。我可以轻松检测到密钥丢失,但我怎么知道计数器有错误的值?我说的是以下情况:

  1. key = 30
  2. incr(key),key = 31
  3. 密钥由GAE刷新
  4. incr(key),key = 1
  5. 有什么技巧我不知道(校验和与memcache一起使用的数字?)?我真的应该关心这种情况吗?

    一些可能无用的细节:

    • 计数器的值范围为0-10000。
    • 计数器应该活1小时。我每小时将它们存储在数据存储区中。
    • 我正在使用Go。

    感谢。

2 个答案:

答案 0 :(得分:3)

我认为尼克约翰逊的这篇文章会帮助你:http://blog.notdot.net/2010/04/High-concurrency-counters-without-sharding

答案 1 :(得分:0)

我会使用一个开源库代替。你见过这个吗?

https://github.com/oodlemud/appengine-counter