Maison > développement back-end > tutoriel php > Exemple de la façon dont Redis remplace PHP pour implémenter une session de stockage de fichiers

Exemple de la façon dont Redis remplace PHP pour implémenter une session de stockage de fichiers

黄舟
Libérer: 2023-03-16 20:38:02
original
1045 Les gens l'ont consulté

redis remplace l'instance de stockage de fichiers PHP session

Veuillez comprendre la fonction PHP session_set_save_handler avant de visualiser l'exemple d'utilisation de

Définir une classe SessionManager

class SessionManager {
  private $redis;
  public function construct(){
    $this->redis = new Redis();
    $this->redis->connect('192.168.0.102', 6379);
    $retval =session_set_save_handler(
      array($this,"open"),
      array($this,"close"),
      array($this,"read"),
      array($this,"write"),
      array($this,"destroy"),
      array($this,"gc")
    );
    session_start();
  }
  public function open($path,$name){
    return true;
  }
  public function close(){
    return true;
  }
  public function read($id){
    $session_value = $this->redis->get($id);
    if($session_value){
      return $session_value;
    }else{
      return "";
    }
  }
  public function write($id,$data){
    if($this->redis->set($id,$data)){
      return true;
    }else{
      return false;
    }
  }
  public function destroy($id){
    if($this->redis->delete($id)){
      return true;
    }else{
      return false;
    }
  }
  public function gc($maxlifetime){
    return true;
  }
  public function destruct(){
    session_write_close();
  }
}
Copier après la connexion

Créer un session_set.php avec le code suivant

include("SessionManager.php");
new SessionManager();
$_SESSION['user_name']="xxdcsnd@sina.com";
Copier après la connexion

Créer un session_set .php avec le code suivant

include("SessionManager.php");
new SessionManager();
echo $_SESSION['user_name'];
Copier après la connexion

Résultat de sortie du test xxdcsnd@sina.com

Remarque : php.ini session.save-hadler est défini à l'utilisateur, sinon session_set_save_handler ne sera pas efficace

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal