앞서 공유 메모리를 구현하기 위한 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('Unable to create the shared memory segment' . PHP_EOL); } //设置一个值 shm_put_var($shm_id, $shar_key, 'test'); //删除一个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 중국어 웹사이트의 기타 관련 기사를 참조하세요!