我想知道我需要在PHP中使用apc_cas
函数的真实例子。
答案 0 :(得分:0)
向您保证没有其他人更新该密钥中的值。因为这个原因你必须传递$ old值。如果当前值与您对密钥值的知识不同(在这种情况下为$ old),则不会更新密钥并返回false。
密钥库数据库中常用的http://en.wikipedia.org/wiki/Compare-and-swap的实现。
答案 1 :(得分:0)
一个简单的例子是一个计数器。假设我们有一个键counter
和一个增加计数器的函数(注意这更适合apc_inc
函数,但让我们一起玩):
function incCounter(){
//Get the current value increment and set
$c = apc_fetch('counter');
$c++;
apc_store('counter',$c);
}
但是上面有一个问题。如果同时发生两个请求,它们将获得$c
的相同值并增加它意味着计数器将仅增加一个。
使用apc_cas
但是,请保证您要更新的值是旧的,并且在此期间它没有被更改。