>  기사  >  백엔드 개발  >  PHP는 공유 메모리 프로세스 통신 기능의 shm을 구현합니다.

PHP는 공유 메모리 프로세스 통신 기능의 shm을 구현합니다.

藏色散人
藏色散人앞으로
2019-09-29 14:21:163370검색

앞서 공유 메모리를 구현하기 위한 PHP 함수인 shmop를 소개했고 프로젝트에도 적용했습니다. 하지만 shmop에는 제한이 있습니다. 즉, 제가 테스트해본 결과 sem은 혼합 유형을 지원합니다. 배열 유형이며 직접 사용할 수 있습니다. 직접 저장하고 가져오므로 불필요한 형식 변환 단계가 제거됩니다. 하지만 sem은 크기 제한이 있고 shmop은 아주 큰 크기로 설정할 수 있어요~~ 하지만 php.ini에서 관련 구성을 수정할 수도 있습니다.

<?php
$key = 0x4337b124;  
$shar_key = 1;
// 创建一个共享内存
$shm_id = shm_attach($key, 1024, 0666); // resource type
if ($shm_id === false) {
    die(&#39;Unable to create the shared memory segment&#39; . PHP_EOL);
}
//设置一个值
shm_put_var($shm_id, $shar_key, &#39;test&#39;);
//删除一个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 유형 매개변수만 될 수 있습니다.

자세한 안내

shm_attach

공유 메모리 공간 생성을 엽니다.

구문: ​​int shm_attach(int key, int [memsize], int [perm]);

반환 값: 정수

기능 유형: 운영 체제 및 환경

내용 설명: 이 기능은 공유를 열거나 생성하는 데 사용됩니다. 기억공간. 매개변수 키가 이 부분의 키입니다. memsize 매개변수는 생략 가능하며, 필요한 최소 메모리 공간(단위는 바이트 그룹)을 나타냅니다. 기본값은 php3.ini 또는 php.ini의 sysvshm.init_mem에 구성되어 있습니다. 구성이 없으면 10000바이트입니다. 이 메모리 공간의 사용 권한을 결정하기 위해 perm 매개변수를 생략할 수도 있습니다. 기본값은 666입니다. 반환값은 프로그램에서 사용할 수 있는 공유 메모리의 ID 값이다.

shm_detach

공유 메모리 공간 링크를 삭제합니다.

구문: ​​int shm_detach(int shm_identifier);

반환값: 정수

기능 유형: 운영 체제 및 환경

내용 설명: 이 함수는 공유 메모리 공간과의 링크를 종료하는 데 사용됩니다. shm_identifier 매개변수는 중지할 부분의 공유 메모리 ID 값입니다.

shm_remove

메모리 공간을 지웁니다.

구문: ​​int shm_remove(int shm_identifier);

반환값: 정수

기능 유형: 운영 체제 및 환경

내용 설명: 이 함수는 공유 메모리 공간의 모든 데이터를 지우는 데 사용됩니다. shm_identifier 매개변수는 중지할 부분의 공유 메모리 ID 값입니다.

shm_put_var

메모리 공간에 변수를 추가하거나 업데이트하세요.

구문: ​​int shm_put_var(int shm_identifier, int Variable_key, 혼합 변수);

반환 값: 정수

함수 유형: 운영 체제 및 환경

내용 설명: 이 함수는 변수 값을 추가하거나 수정하는 데 사용할 수 있습니다. 기억 공간에서. shm_identifier 매개변수는 추가 및 수정될 공유 메모리 ID 값입니다. 변수variable_key는 추가 및 수정될 변수 이름 키입니다. 매개변수 변수는 변수의 내용입니다. 변수 유형은 double, 정수, 문자열 또는 배열일 수 있습니다.

shm_get_var

메모리 공간에서 지정된 변수를 가져옵니다.

구문: ​​혼합 shm_get_var(int shm_identifier, int Variable_key);

반환 값: 혼합 유형 데이터

기능 유형: 운영 체제 및 환경

내용 설명: 이 함수는 메모리에서 지정된 변수 값을 얻는 데 사용할 수 있습니다. 공간. shm_identifier 매개변수는 획득할 공유 메모리 ID 값입니다. Variable_key 매개변수는 획득할 변수 이름 키입니다. 반환 값은 지정된 변수 키의 값입니다.

shm_remove_var

메모리 공간에서 지정된 변수를 삭제합니다.

구문: ​​int shm_remove_var(int id, int Variable_key);

반환값: 정수

기능 유형: 운영 체제 및 환경

내용 설명: 이 함수는 메모리 공간에서 지정된 변수 값을 삭제하는 데 사용할 수 있습니다. shm_identifier 매개변수는 제거할 공유 메모리 ID 값입니다. Variable_key 매개변수는 삭제할 변수 이름 키입니다.

더 많은 PHP 지식을 보려면 PHP 중국어 웹사이트를 방문하세요!

위 내용은 PHP는 공유 메모리 프로세스 통신 기능의 shm을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제