Maison > Article > développement back-end > Une explication sur la façon de sauvegarder les données de session dans Memcache
Cet article décrit comment les données de la session sont stockées dans Memcache. De nombreux étudiants ne savent peut-être pas grand-chose sur la façon dont les données de la session sont stockées dans Memcache. Nous allons donc aujourd'hui expliquer en détail comment les données de la session sont stockées. dans memcache. Allez dans memcache !
Enregistrer les données de la session dans memcache
session Les données sont enregistrées dans le fichier file par défaut
mais on peut modifier la configuration de php pour les enregistrer ailleurs
(1), ouvrez D:lampphp/php.ini. session.save_handler = files est activé, commentez-le
Chemin de sauvegarde du contenu de la session, ajoutez la ligne rouge Cette phrase
Je l'ai modifié et testé
Session.php
<?php session_start(); $_SESSION['name']='whj'; ?>
Get_session.php
<?php session_start(); $name=$_SESSION['name']; echo $name; ?>
SortiewhjCorrect
(2), Mais comment obtenir la variable session n'est plus l'attribut name, mais via session_id pour enregistrer
session_id :Lorsque le navigateur accède au serveur, le serveur attribue au navigateur session_id puis recherchez la valeur correspondante via session_id
Exemple :
session_start(); $_SESSION['age']='whjwhj'; $sess_id=session_id(); var_dump($sess_id); //运行出来是string(26) "dmkppdo0qhbkq099fo608an383",在telnet中运行get dmkppdo0qhbkq099fo608an383的出age|s:6:"whjwhj";
Si vous n'avez pas l'autorisation de le modifierphp ?
ini_set() Vous pouvez définir certaines configurations de php dans le fichier php
Problème de sécurité : Maintenant, tout le monde peut accéder à mon memcache, d'autres peuvent également accéder à mon telnet 192.168.2.200,
Solution : Pare-feu
La session ci-dessus a été utilisée lorsque le fichier de configuration php.ini a été modifié. Ce qui est fait maintenant est qu'il n'y en a pas. il faut modifier le fichier de configuration et ajouter directement au début du fichier :
ini_set('session.save_handler','memcache'); ini_set('session.save_path','tcp://127.0.0.1:11211');告诉它是用session保存到memcache的
Exemple :
Ini_session.php
<?php ini_set('session.save_handler','memcache'); ini_set('session.save_path','tcp://127.0.0.1:11211'); session_start(); class Hot{ public $name; public $color; public function __construct($name,$color){ $this->name=$name; $this->color=$color; } } $hot=new Hot('xiaobei','white'); $_SESSION['hot']=$hot; ?>
Get_ini_session.php
<?php ini_set('session.save_handler','memcache'); ini_set('session.save_path','tcp://127.0.0.1:11211'); session_start(); class Hot{ public $name; public $color; public function __construct($name,$color){ $this->name=$name; $this->color=$color; } } $hot=$_SESSION['hot']; var_dump($hot); ?>
7 ,
memcached , le redémarrage du système d'exploitation entraînera la disparition de toutes les données. De plus, une fois que la capacité du contenu atteint la valeur spécifiée, les caches inutilisés seront automatiquement supprimés en fonction de l'algorithme LRU (Least Récemment utilisé) .
Si vous définissezexpire sur 0, cela signifie qu'il n'expirera jamais tant que la machine n'est pas redémarrée ou que le service n'est pas redémarré
Articles connexes : Présentation du contrôle de session php et des cookies
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!