This article mainly introduces the implementation of shared memory process communication function (_shm) in PHP. It has certain reference value. Now I share it with you. Friends in need can refer to it.
The PHP implementation was introduced earlier Shmop, a function of shared memory, has also been applied to the project. However, shmop has limitations, that is, it only supports string types; after my testing, sem is a hybrid type, supports array types, and can be directly stored and obtained directly. Removed redundant steps for 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('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);
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 with 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 memory space variable value. 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 specified value in the memory space variable. 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.
The above is the entire content of this article. I hope it will be helpful to everyone's study. For more related content, please pay attention to the PHP Chinese website!
Related recommendations:
PHP code automatic detection (git/svn integrated PHP_CodeSniffer)
php compile and install extension redis and swoole method
The above is the detailed content of PHP implements shared memory process communication function (_shm). For more information, please follow other related articles on the PHP Chinese website!