Home Backend Development PHP Tutorial PHP implements shared memory process communication function (_shm)

PHP implements shared memory process communication function (_shm)

Jul 06, 2018 pm 03:34 PM
centos linux php cache

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(&#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);
Copy after login

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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

Explain the match expression (PHP 8 ) and how it differs from switch. Explain the match expression (PHP 8 ) and how it differs from switch. Apr 06, 2025 am 12:03 AM

In PHP8, match expressions are a new control structure that returns different results based on the value of the expression. 1) It is similar to a switch statement, but returns a value instead of an execution statement block. 2) The match expression is strictly compared (===), which improves security. 3) It avoids possible break omissions in switch statements and enhances the simplicity and readability of the code.

What is Cross-Site Request Forgery (CSRF) and how do you implement CSRF protection in PHP? What is Cross-Site Request Forgery (CSRF) and how do you implement CSRF protection in PHP? Apr 07, 2025 am 12:02 AM

In PHP, you can effectively prevent CSRF attacks by using unpredictable tokens. Specific methods include: 1. Generate and embed CSRF tokens in the form; 2. Verify the validity of the token when processing the request.

Describe the purpose and usage of the ... (splat) operator in PHP function arguments and array unpacking. Describe the purpose and usage of the ... (splat) operator in PHP function arguments and array unpacking. Apr 06, 2025 am 12:07 AM

The... (splat) operator in PHP is used to unpack function parameters and arrays, improving code simplicity and efficiency. 1) Function parameter unpacking: Pass the array element as a parameter to the function. 2) Array unpacking: Unpack an array into another array or as a function parameter.

How can you prevent a class from being extended or a method from being overridden in PHP? (final keyword) How can you prevent a class from being extended or a method from being overridden in PHP? (final keyword) Apr 08, 2025 am 12:03 AM

In PHP, the final keyword is used to prevent classes from being inherited and methods being overwritten. 1) When marking the class as final, the class cannot be inherited. 2) When marking the method as final, the method cannot be rewritten by the subclass. Using final keywords ensures the stability and security of your code.

C language conditional compilation: a detailed guide for beginners to practical applications C language conditional compilation: a detailed guide for beginners to practical applications Apr 04, 2025 am 10:48 AM

C language conditional compilation is a mechanism for selectively compiling code blocks based on compile-time conditions. The introductory methods include: using #if and #else directives to select code blocks based on conditions. Commonly used conditional expressions include STDC, _WIN32 and linux. Practical case: Print different messages according to the operating system. Use different data types according to the number of digits of the system. Different header files are supported according to the compiler. Conditional compilation enhances the portability and flexibility of the code, making it adaptable to compiler, operating system, and CPU architecture changes.

Explain strict types (declare(strict_types=1);) in PHP. Explain strict types (declare(strict_types=1);) in PHP. Apr 07, 2025 am 12:05 AM

Strict types in PHP are enabled by adding declare(strict_types=1); at the top of the file. 1) It forces type checking of function parameters and return values ​​to prevent implicit type conversion. 2) Using strict types can improve the reliability and predictability of the code, reduce bugs, and improve maintainability and readability.

Unable to log in to mysql as root Unable to log in to mysql as root Apr 08, 2025 pm 04:54 PM

The main reasons why you cannot log in to MySQL as root are permission problems, configuration file errors, password inconsistent, socket file problems, or firewall interception. The solution includes: check whether the bind-address parameter in the configuration file is configured correctly. Check whether the root user permissions have been modified or deleted and reset. Verify that the password is accurate, including case and special characters. Check socket file permission settings and paths. Check that the firewall blocks connections to the MySQL server.

See all articles