所谓内存共享:就是多个应用程序公用一个内存段,在A程序中可以获取B程序存储在这个内存段的数据,也就是数据共享。
创新互联-专业网站定制、快速模板网站建设、高性价比文县网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式文县网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖文县地区。费用合理售后完善,10余年实体公司更值得信赖。shmop是PHP提供的函数集,在配置PHP的时候使用 -enable-shmop后,就可以使用这个函数集提供的函数,
shmop对LINUX更加友好,而对于WINDOWS来说就不怎样了,不支持CGI和CLI模式~有点尴尬。
来说说他提供的一些函数:
ftok函数:生成一个数字或叫做键或key。$key = ftok(fileName, mode); 一般情况下,这个fileName可以直接使用__FILE__来指向当前文件,mode则比较灵活,是一个字符串类型,比如:"a", "b", "p"
shmop_open($key, $mode, $permission, $size); 开启一个内存段
这里的key就是ftok生成的哪个key,$mode是打开这个内存段的模式。包括:
a: 它允许访问只读的内存段
w: 它允许访问可读写的内存段
c: 创建一个新的内存段,如果已经存在,尝试读写
n: 创建一个新的内存段,如果已经存在,则失败
$size指的是申明的这个内存段的大小,字节为单位、
shmop_open返回一个ID,这个ID是内存段ID,可以ftok生成的key不是一回事。注意!
shmop_write($id, $stringData, $offset);
往id这个内存段中写入字符串数据,从$offset的位置开始,offset一般会设置为0, 注意,这里存储只能是字符串类型。注意转换。
shmop_read($id, $offset, $limit);
读取数据,从$offset开始读取$limit个字符。
shmop_size($id);
获取总共存储了多少个字节。
shmop_delete($id)
清空这个内存段的内容
shmop_close($id)
关闭这个内存端,也叫做内存回收~
好了,介绍了这些基础方法,大家应该都尝试过了,我们应该将这些内容进行一个封装,于是我对它进行了封装,做成了一个类,也方便了以后的扩展
github地址:
https://github.com/toulen/Tshmop
composer安装:
composer require toulen/tshmop:1.0
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享文章:PHP共享内存段实现,使用shmop函数实现内存共享-创新互联
URL地址:http://lswzjz.com/article/cocied.html