代码之家  ›  专栏  ›  技术社区  ›  ʞɔıu

在memcache中执行原子数组修改

  •  1
  • ʞɔıu  · 技术社区  · 14 年前

    每次有人访问您的站点时,您都希望将他们推到一个数组中,并转移数组中的第一个访问者。

    当然,一个潜在的问题是,多个访问者可能同时覆盖和读取此数组,可能会相互绊倒。当然,memcache中没有原子推/移。

    可能存在两个几乎同时进行的用户访问不一致的情况:

    1. 用户B从memcache获取数组
    2. 用户A修改数组 (更改将丢失)
    3. 用户将数组存储在memcache中

    如何使用memcache正确地完成这样的任务?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Wrikken    14 年前
        2
  •  0
  •   Dustin    14 年前

    我们为此建立了CAS。

    1. 用户获取数组
    2. 用户B获取数组
    3. 用户B更改数组
    4. 数组中的用户B CASes—丢失