【问题标题】:Memcached replace not workingMemcached 替换不起作用
【发布时间】:2010-11-03 15:12:21
【问题描述】:

我们正在使用 PHP 中的 memcached。我一直在试图弄清楚为什么我们会看到一些 memcached 似乎没有更新的问题。你能想到为什么调用 memcache->replace() 不会真正更新对象的任何原因吗?我们只是在数组类型对象上调用 memcache->replace()。该数组确实包含大量数据,但我认为我们没有超过 1MB 的上限。故障似乎间歇性地发生。大多数时候它有效,但偶尔它对我们来说没什么大不了的。此外,memcached 是同步执行还是异步执行?如果它是异步的,那么这里可能存在竞争条件。

【问题讨论】:

    标签: memcached


    【解决方案1】:

    我相信 memcache 客户端是同步的,但复制是异步的,所以如果您使用复制,则可能在复制完成之前将值写入一台服务器并从另一台服务器读取。如果您正在使用复制,请查看是否可以在不复制的情况下重现错误。

    【讨论】:

      【解决方案2】:

      您为什么使用replace 而不是set?如果您不覆盖数据,replace 周围的语义允许它失败 - 特别是没有数据,只是一些数据。

      如果您想覆盖特定数据,请使用cas。如果您只想存储数据,请使用set

      【讨论】:

        猜你喜欢
        • 2014-11-22
        • 1970-01-01
        • 2018-05-02
        • 2018-04-27
        • 2018-03-15
        • 2015-02-21
        • 2013-03-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多