Maison  >  Article  >  développement back-end  >  PHP implémente la fonction de communication du processus de mémoire partagée (_shm)

PHP implémente la fonction de communication du processus de mémoire partagée (_shm)

不言
不言original
2018-07-06 15:34:491599parcourir

Cet article présente principalement l'implémentation de la fonction de communication du processus de mémoire partagée (_shm) en PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

L'implémentation PHP. a été introduit plus tôt, une fonction de mémoire partagée, a également été appliquée au projet. Cependant, shmop a des limites, c'est-à-dire qu'après mes tests, sem est un type hybride, prend en charge les types de tableaux ; peut être directement stocké et obtenu directement. Suppression des étapes redondantes pour la conversion de format. Cependant, sem a une taille limite et shmop peut être défini sur une très grande taille ~~~ Cependant, vous pouvez également modifier la configuration appropriée dans 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);

Remarque : $shar_key ne peut être qu'un paramètre de type int.

Description détaillée

shm_attach
Ouvrez la création d'un espace mémoire partagé.
Syntaxe : int shm_attach(int key, int [memsize], int [perm]);
Valeur de retour : entier
Type de fonction : Système d'exploitation et environnement
Description du contenu : Cette fonction est utilisée pour ouvrir ou créer un espace mémoire partagé. La clé du paramètre est la clé de cette partie. Le paramètre memsize peut être omis et représente l'espace mémoire minimum requis (l'unité est un groupe d'octets). La valeur par défaut est configurée dans php3.ini ou sysvshm.init_mem dans php.ini. S'il n'y a pas de configuration, elle est de 10000 octets. Le paramètre perm peut également être omis pour déterminer les droits d'utilisation de cet espace mémoire. La valeur par défaut est 666. La valeur de retour est la valeur ID de la mémoire partagée, qui peut être utilisée par le programme.

shm_detach
Abandonner le lien vers l'espace mémoire partagé.
Syntaxe : int shm_detach(int shm_identifier);
Valeur de retour : entier
Type de fonction : Système d'exploitation et environnement
Description du contenu : Cette fonction permet de terminer le lien avec l'espace mémoire partagé. Le paramètre shm_identifier est la valeur de l'ID mémoire partagée de la pièce à arrêter.

shm_remove
Effacer l'espace mémoire.
Syntaxe : int shm_remove(int shm_identifier);
Valeur de retour : entier
Type de fonction : Système d'exploitation et environnement
Description du contenu : Cette fonction est utilisée pour effacer toutes les données dans l'espace mémoire partagé. Le paramètre shm_identifier est la valeur de l'ID mémoire partagée de la pièce à arrêter.

shm_put_var
Ajouter ou mettre à jour des variables dans l'espace mémoire.
Syntaxe : int shm_put_var(int shm_identifier, int variable_key, Mixed variable);
Valeur de retour : entier
Type de fonction : Système d'exploitation et environnement
Description du contenu : Cette fonction peut être utilisée pour augmenter ou modifier la valeur de la variable d'espace mémoire. Le paramètre shm_identifier est la valeur de l'ID de mémoire partagée à ajouter et à modifier. Le paramètre variable_key est la clé du nom de variable à ajouter et à modifier. La variable paramètre est le contenu de la variable. Le type de la variable peut être un double, un entier, une chaîne ou un tableau.

shm_get_var
Récupère la variable spécifiée dans l'espace mémoire.
Syntaxe : mixte shm_get_var(int shm_identifier, int variable_key);
Valeur de retour : données de type mixte
Type de fonction : système d'exploitation et environnement
Description du contenu : Cette fonction peut être utilisée pour obtenir la valeur spécifiée dans la valeur de la variable d'espace mémoire. Le paramètre shm_identifier est la valeur de l'ID de mémoire partagée à obtenir. Le paramètre variable_key est la clé du nom de variable à obtenir. La valeur de retour est la valeur de la clé de variable spécifiée.

shm_remove_var
Supprime la variable spécifiée dans l'espace mémoire.
Syntaxe : int shm_remove_var(int id, int variable_key);
Valeur de retour : entier
Type de fonction : Système d'exploitation et environnement
Description du contenu : Cette fonction peut être utilisée pour supprimer la valeur de variable spécifiée dans l'espace mémoire. Le paramètre shm_identifier est la valeur de l'ID de mémoire partagée à supprimer. Le paramètre variable_key est la clé du nom de variable à supprimer.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Détection automatique du code PHP (php_CodeSniffer intégré à git/svn)

php compiler et installer l'extension redis et méthode swoole

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn