apc_cas()函数的实际用法是什么?

时间:2015-08-10 10:59:17

标签: php apc

我想知道我需要在PHP中使用apc_cas函数的真实例子。

2 个答案:

答案 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但是,请保证您要更新的值是旧的,并且在此期间它没有被更改。