php共享内存段示例分享

 在asp.net和java中都有共享内存,php除了可以使用Memcached等方式变通以外其实php也是支持共享内存的,下面使用shmop来实现这个功能

 
需要安装扩展shmop
找到php安装源文件目录
 
 
代码如下:
# cd /usr/local/php-5.4.0/ext/shmop
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
#  make && make install
 
编译安装成功
 

 
 
代码如下:
# cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
多出一个 shmop.so
在php.ini增加shmop.so
extension=shmop.so
; Module Settings ;
phpinfo()输出
 
 
 
  
 
 
写数据
 
 
代码如下:
<?php
$shmid = shmop_open(864, 'c', 0755, 1024);
shmop_write($shmid, "Hello World!", 0);
phpinfo();
?>
 
 
读数据
 
 
 代码如下:
<?php
$shmid = shmop_open(864, 'c', 0755, 1024);
shmop_write($shmid, "Hello World!", 0);
echo shmop_read($shmid, 0, 11);
?>
 

时间: 2024-10-13 07:37:45

php共享内存段示例分享的相关文章

php共享内存段示例分享_php实例

 需要安装扩展shmop找到php安装源文件目录 复制代码 代码如下: # cd /usr/local/php-5.4.0/ext/shmop# /usr/local/php/bin/phpize# ./configure --with-php-config=/usr/local/php/bin/php-config#  make && make install 编译安装成功 复制代码 代码如下: # cd /usr/local/php/lib/php/extensions/no-debu

ipcs与Linux共享内存的示例

一.共享内存相关知识 所谓共享内存,就是多个进程间共同地使用同一段物理内存空间,它是通过将同一段物理内存映射到不同进程的 虚拟空间来实现的.由于映射到不同进程的虚拟空间中,不同进程可以直接使用,不需要像消息队列那样进行复制,所以共享内存的效率很高.共享内存可以通过mmap()映射普通文件机制来实现,也可以System V共享内存机制来实现,System V是通过映射特殊文件系统shm中的文件实现进程间的共享内存通信,也就是说每个共享内存区域对应特殊文件系统shm中的一个文件. 二.共享内存原理

两个进程间能使用共享内存段进行数据共享吗?

问题描述 两个进程间能使用共享内存段进行数据共享吗? 我是这样做的: 在一个dll里面定义一个共享数据段,里面定义一个整形数据,然后定义两个导出函数对这个整形数据进行操作. #pragma data_seg ("ShareDataSeg") //开辟一个名字为"ShareDataSeg"的共享内存段 int g_nShareInt = 0; #pragma data_seg() //共享内存段"ShareDataSeg"定义结束 //加上这条声明

UC编程9-管道pipe操作和共享内存段shm操作

//myuc.h #include<stdio.h>//io流 #include<stdlib.h>//标准库 #include<unistd.h>//uc标准头文件 #include<fcntl.h>//文件控制 #include<string.h>//c字符串 #include<sys/types.h> #include<sys/mman.h>//内存映射 #include<sys/stat.h>//文件状

显示内存状态示例分享_C 语言

复制代码 代码如下: #include <stdio.h>void memstat(void *memory, size_t memsize) { printf("-------memory------ ----\n"); for(int i=0; i<memsize; i++) {  char *p = (char*) memory;  printf("%d%d%d%d "    , 0x1 & p[i] >> 3    ,

SYSTEM V标准的共享内存用于进程间通信的权限管理示例

  输出同现SEGMENTATION FAULT是因为试图写操作,这是因为将虚拟内存挂载为了READ ONLY方式导致的权限不够. 1 #include <sys/shm.h> 2 #include <unistd.h> 3 #include <stdlib.h> 4 #include <stdio.h> 5 #include <sys/ipc.h> 6 #include <string.h> 7 8 int main(int arg

PHP 直接在共享内存中存储数据集

共享内存是一种在相同机器中的应用程序之间交换数据的有效方式.一个进程可创建一个可供其他进程访问的内存段,只要它分配了正确的权限.每个内存段拥有一个惟一的 ID(称为 shmid),这个 ID 指向一个物理内存区域,其他进程可在该区域操作它.创建并提供了合适的权限之后,同一台机器中的其他进程就可以操作这些内存段:读取.写入和删除. 这表明使用 C 语言编写的应用程序可与使用其他语言(比如 Java 或 PHP)编写的应用程序共享信息.它们都可以共享信息,只要它们可访问和理解该信息.共享内存在针对大

Qt之进程间通信(共享内存)

简述 上一节中,我们分享下如何利用Windows消息机制来进行不同进程间的通信.但是有很多局限性,比如:不能跨平台,而且必须两个进程同时存在才可以,要么进程A发了消息谁接收呢? 下面我们来分享另外一种跨平台的进行间通信的方式-Shared Memory(共享内存). Qt提供的基于共享内存的IPC有QSharedMemory类和QSystemSemaphore类,QSharedMemory可以访问共享内存区域,以及多线程和进程的共享内存区域.而QSystemSemaphore类用于访问系统共享资

PHP共享内存用法实例分析_php技巧

本文实例讲述了PHP共享内存用法.分享给大家供大家参考,具体如下: 共享内存主要用于进程间通信 php中的共享内存有两套扩展可以实现 1.shmop  编译时需要开启 --enable-shmop 参数 实例: $shm_key = ftok(__FILE__, 't'); /** 开辟一块共享内存 int $key , string $flags , int $mode , int $size $flags: a:访问只读内存段 c:创建一个新内存段,或者如果该内存段已存在,尝试打开它进行读写