Memcached替换不起作用

时间:2010-11-03 15:12:22

标签: memcached

我们正在使用PHP的memcached。我一直试图找出为什么我们看到memcached似乎没有更新的一些问题。你能想到为什么调用memcache-> replace()实际上不会更新对象的原因?我们只是在数组类型对象上调用memcache-> replace()。该阵列确实包含大量数据,但我认为我们没有超过1MB的上限。失败似乎是间歇性的。它大部分时间都有效但偶尔会对我们来说不是什么大问题。此外,memcached是同步执行还是异步?如果它是异步的,那么可能存在竞争条件。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

为什么使用replace而不是setreplace周围的语义允许它在你没有覆盖数据时失败 - 特别是没有数据,只有一些数据。

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