Maison  >  Article  >  développement back-end  >  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

黄舟
黄舟original
2017-10-31 09:10:35997parcourir

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();
  }
}

Créer un session_set.php avec le code suivant

include("SessionManager.php");
new SessionManager();
$_SESSION['user_name']="xxdcsnd@sina.com";

Créer un session_set .php avec le code suivant

include("SessionManager.php");
new SessionManager();
echo $_SESSION['user_name'];

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!

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