2010-07-21 91 views
1

假设你想保持过去10人次的名单到您的网站在内存缓存中执行的原子阵列修改。在内存缓存

每次有人访问你的网站的时候,你需要将它们推到一个数组,数组中推卸第一访问者。

当然,一个潜在的问题是,多个访问者可重写,并在同一时间读取该阵列中,可能脱扣彼此起来。当然,在memcache中没有原子的推/移。

与2接近同时用户可能不一致场景访问:

  1. 用户A从内存缓存
  2. 用户B获取阵列从内存缓存
  3. 用户A获得阵列修改阵列(变化将丢失)
  4. 用户B修改阵列
  5. 用户在内存缓存A存储阵列
  6. 用户B存储阵列中的memcache (将覆盖A的3步变化)

你怎么能做到这样的事情正确使用的memcache?

回答

0

我们建立CAS此。

  1. 用户A获得阵列
  2. 用户B获取阵列
  3. 用户A改变阵列
  4. 用户B改变阵列
  5. 用户A例阵列 - 以阵列胜
  6. 用户B的情况下 - 丢失
  7. 用户B重复2