1、共享内存
php采用sysvshm扩展完成进程间通信共享内存的操作
1.1、如何安装
源码编译php时,加上指令--enable-sysvshm
1.2、函数说明
![beb7062ee0dc3a18a28d568b9679c890.png](https://i-blog.csdnimg.cn/blog_migrate/8195134dbd5d633c4c1c29a102b377c1.jpeg)
2、共享内存基本用法
2.1、源码
/**
* Copyright (C) Iamasb
* @project : 3、workerman相关知识点
* @explain : 共享内存基本用法
* @filename : 29、共享内存基本用法.php
* @author : iamasb 2801616735@qq.com
*/
$ftKey = ftok(__FILE__,'s');
// 创建共享内存
$shmId = shm_attach($ftKey);
// 只能是integer类型
$key = 1;
// 判断是否存在
if (!shm_has_var($shmId,$key)) {
echo $key,'-->is not exists.',PHP_EOL;
// 设置
shm_put_var($shmId,$key,'iamasb');
}
// 获取
echo shm_get_var($shmId,$key),PHP_EOL;
// 移除共享内存的所有数据
shm_remove($shmId);
// 断开
shm_detach($shmId);
2.2、执行结果
![35b23b139b4b691225f9a58a08a8bc11.png](https://i-blog.csdnimg.cn/blog_migrate/988888c3801e5fe02e66a7a7666d127b.jpeg)
3、注意事项
在操作共享内存后,不执行shm_remove的话,则共享内存中存在的数据仍保留。
3.1、测试
注释上述代码移除共享内存的操作代码
3.2、执行
![11f9b9b85539aacb3667160baef8b663.png](https://i-blog.csdnimg.cn/blog_migrate/e320a7cf032ce9b5edd3b0c12ab08cda.jpeg)