Ich habe ein Problem mit PHP, um Zwischenergebnisse lokal zu speichern.PHP apc/apcu Cache nicht Zwischenergebnis halten, während Shmop tun, warum?
Mit APC
:
apc_store("foo", "bar");
$ret = apc_fetch("foo");
Mit APCu
:
apcu_store("foo", "bar", 0);
$ret = apcu_fetch("foo");
Ich speichere mit apc_store/apcu_store unter php_cli auf einem PHP-Skript, und hole mit apc_fetch/apcu_fetch auf einem anderen PHP-Skript, und finde die $ret
leer sein.
Während bei shmop
:
$shmKey = ftok(__FILE__, 't');
$shmId = shmop_open($shmKey, "c", 0644, 1024);
$dataArray = array("foo" => "bar");
shmop_write($shmId, serialize($dataArray), 0);
$retArray = unserialize(shmop_read($shmId, 0, shmop_size($shmId)));
$ret = $retArray['foo'];
Hier bekomme ich die $ret
: "bar"
.
Sollte nicht das APC/APCu
das Zwischenergebnis lokal zwischenspeichern, so wie das shmop
?
Danke für die sehr klare Erklärung. – lulyon