PHP跨会话全局计数器变量(共享内存)

时间:2014-10-22 18:42:28

标签: php

在一个非常繁忙的PHP服务器上,我试图让一个全局计数器继续前进,并认为共享内存将是可行的方法。理想情况下我会使用APC

apc_add('counter',1);
apc_inc('counter',1);
var_dump(apc_fetch('counter'));

除了它在服务器上不可用,我被限制在可用的范围内。服务器确实有shmop所以试图让它工作,但它似乎是特定于会话。还有什么可以用的吗?

我试过的shmop代码:

$shm_key = ftok(__FILE__, 't');
$shm_id = shmop_open($shm_key, "c", 0644, 8);

$shm_data = shmop_read($shm_id, 0, 8);

$shm_data = shmop_read($shm_id, 0, 8);
var_dump($shm_data);

if (empty($shm_data)) {
    //counter has not been set
    $shm_bytes_written = shmop_write($shm_id, 0, 1);
} else {
    $shm_bytes_written = shmop_write($shm_id, (int)$shm_data + 1, 0);
}

$shm_data = shmop_read($shm_id, 0, 8);
var_dump($shm_data);

0 个答案:

没有答案