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

不言
풀어 주다: 2023-04-02 17:30:01
원래의
1660명이 탐색했습니다.

이 글은 주로 PHP의 공유 메모리 프로세스 통신 기능(_shm)을 소개합니다. 이제 필요한 친구들이 참고할 수 있도록 공유하겠습니다. #이전 소개 공유 메모리를 구현하기 위해 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);
반환값: 정수
함수 유형: 운영 체제 및 환경
내용 설명: 이 함수는 메모리를 삭제하는 데 사용할 수 있습니다. space 지정된 변수 값입니다. shm_identifier 매개변수는 제거할 공유 메모리 ID 값입니다. Variable_key 매개변수는 삭제할 변수 이름 키입니다.

위 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

PHP 코드 자동 감지(git/svn 통합 PHP_CodeSniffer)


php에서 확장 redis 및 swoole을 컴파일하고 설치하는 방법

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿