Home  >  Article  >  Backend Development  >  PHP implements shm of shared memory process communication function

PHP implements shm of shared memory process communication function

藏色散人
藏色散人forward
2019-09-29 14:21:163335browse

Earlier I introduced shmop, a function of PHP to implement shared memory, and it was also applied to the project. However, shmop has limitations, that is, it only supports string types; after my testing, sem is a mixed type and supports array types. It can be stored and retrieved directly, eliminating unnecessary steps of format conversion. However, sem has a size limit, and shmop can be set to a very large size~~~ However, you can also modify the relevant configuration in 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);

Note: $shar_key can only be an int type parameter.

Detailed description

shm_attach

Open the shared memory space.

Syntax: int shm_attach(int key, int [memsize], int [perm]);

Return value: integer

Function type: operating system and environment

Content description: This function is used to open or create a shared memory space. The parameter key is the key of this part. The parameter memsize can be omitted and represents the minimum required memory space (unit is byte group). The default value is configured in php3.ini or sysvshm.init_mem in php.ini. If there is no configuration, it is 10000 bytes. The parameter perm can also be omitted to determine the usage rights of this memory space. The default value is 666. The return value is the ID value of the shared memory, which can be used by the program.

shm_detach

Abort the shared memory space link.

Syntax: int shm_detach(int shm_identifier);

Return value: integer

Function type: operating system and environment

Content description: This function is used to terminate the link to the shared memory space. The parameter shm_identifier is the shared memory ID value of the part to be stopped.

shm_remove

Clear the memory space.

Syntax: int shm_remove(int shm_identifier);

Return value: integer

Function type: operating system and environment

Content description: This function is used to clear all data in the shared memory space. The parameter shm_identifier is the shared memory ID value of the part to be stopped.

shm_put_var

Add or update variables in the memory space.

Syntax: int shm_put_var(int shm_identifier, int variable_key, mixed variable);

Return value: integer

Function type: operating system and environment

Content description: This function can be used to increase or modify the variable value in the memory space. The parameter shm_identifier is the shared memory ID value to be added and modified. The parameter variable_key is the variable name key to be added and modified. The parameter variable is the content of the variable. The type of the variable can be a double, an integer, a string, or an array.

shm_get_var

Get the variable specified in the memory space.

Syntax: mixed shm_get_var(int shm_identifier, int variable_key);

Return value: mixed type data

Function type: operating system and environment

Content Description: This function can be used to obtain the variable value specified in the memory space. The parameter shm_identifier is the shared memory ID value to be obtained. The parameter variable_key is the variable name key to be obtained. The return value is the value of the specified variable key.

shm_remove_var

Delete the specified variable in the memory space.

Syntax: int shm_remove_var(int id, int variable_key);

Return value: integer

Function type: operating system and environment

Content description: This function can be used to delete the specified variable value in the memory space. The parameter shm_identifier is the shared memory ID value to be removed. The parameter variable_key is the variable name key to be deleted.

For more PHP knowledge, please visit PHP Chinese website!

The above is the detailed content of PHP implements shm of shared memory process communication function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete