前面介绍了php实现共享内存的一个函数shmop,也应用到了项目中,不过shmop有局限性,那就是只支持字符串类型的;sem经过我的测试,是混合型,支持数组类型,可以直接存储,直接获取,少了多余的步骤格式转换。不过sem有大小限制,shmop可以设置很大很大很大~~~
<?php
$key = 0x4337b124;
$shar_key = 1;
// 创建一个共享内存
$shm_id = shm_attach($key, 1024, 0666); // resource type
if ($shm_id === false) {
die(‘Unable to create the shared memory segment‘ . PHP_EOL);
}
//设置一个值
shm_put_var($shm_id, $shar_key, ‘test‘);
//删除一个key
shm_remove_var($shm_id, $shar_key);
//获取一个值
$value = shm_get_var($shm_id, $shar_key);
var_dump($value);
//检测一个key是否存在
var_dump(shm_has_var($shm_id, $shar_key));
//从系统中移除
shm_remove($shm_id);
//关闭和共享内存的连接
shm_detach($shm_id);
注意:$shar_key 只能是 int 型的参数。
原文:https://www.cnblogs.com/wt645631686/p/9146737.html