Maison  >  Article  >  développement back-end  >  Redis stocke les instances de session

Redis stocke les instances de session

小云云
小云云original
2017-12-14 14:34:121229parcourir

Cet article présente principalement les informations pertinentes sur l'instance de remplacement du fichier php par redis pour stocker la session. J'espère que cet article pourra aider tout le monde et permettre à tout le monde de maîtriser la méthode de stockage de session redis. Les amis qui en ont besoin pourront s'y référer. j'espère que cela pourra aider tout le monde.

redis remplace les fichiers PHP pour stocker les instances de session

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

Définir un SessionManager class


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 Le code est le suivant


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

Créez un session_set. Le code php est le 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 sur user, sinon session_set_save_handler ne prendra pas effet

Recommandations associées :

Résumé de l'expérience d'optimisation Redis

Comment implémenter une session avec Redis dans un système distribué PHP

Résumé de l'utilisation de la fonction Redis en PHP

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