PHP 的自带内存共享 APCu 和 shm
APCu
- 扩展下载地址:http://pecl.php.net/package/APCu
- php.ini需要配置:
extension=php_apcu.dll
apc.enabled=1
apc.shm_size=32M
apc.enable_cli=1
具体配置可查看http://php.net/manual/zh/apcu.configuration.php
相关文章:
https://support.cloud.engineyard.com/hc/en...
https://www.cnblogs.com/yjf512/p/3171056.h...
<?php
class APCu
{
public static function get($key)
{
return json_decode(apcu_fetch($key), true);
}
public static function set($key, $data, $ttl)
{
return apcu_store($key, json_encode($data), $ttl);
}
}
if (PHP_SAPI == 'cli' || !function_exists('apcu_store')) {
//不要闹啦 上面说了不支持 cli 模式 和 必须支持APCu扩展的缓存
return;
}
var_dump(Apcu::get("TEST"));
Apcu::set("TEST", ["key" => "value"], 10);
var_dump(Apcu::get("TEST2"));
shm
相关文章:
http://www.laruence.com/2008/04/21/101.htm...
<?php
//使用信号量扩展共享内存
$key = ftok(__FILE__, 'a');
$share_key = 1;
//创建一个共享内存,大小为1024字节,权限为755$
$shm_id = shm_attach($key, 1024, 0755);
var_dump($shm_id);
//将一个key=>value放进共享内存
$message1 = "你好啊1";
shm_put_var($shm_id, $share_key, $message1);
//重复使用key ,前一个设置的值会被后一个设置的值覆盖掉。
$message2 = "你好啊2";
shm_put_var($shm_id, $share_key, $message2);
//读取一个共享内存值
$read_message = shm_get_var($shm_id, $share_key);
echo $read_message . PHP_EOL;
//并不是取走了,而是读取
$read_message2 = shm_get_var($shm_id, $share_key);
echo $read_message2 . PHP_EOL;
//判断共享内存中,某个值是否存在
$isexists = shm_has_var($shm_id, $share_key);
var_dump($isexists);
//删除一个值
shm_remove_var($shm_id, $share_key);
//判断共享内存中,某个值是否存在
$isexists = shm_has_var($shm_id, $share_key);
var_dump($isexists);
//删除一个共享内存
shm_remove($shm_id);
//关闭共享内存的连接
shm_detach($shm_id);
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: