Home  >  Article  >  Backend Development  >  Example of how redis replaces php to implement file storage session

Example of how redis replaces php to implement file storage session

黄舟
黄舟Original
2017-10-31 09:10:35943browse

redis Example of replacing php file storage session

Please understand the PHP session_set_save_handler function before viewing the example Usage

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

Create a session_set.php with the following code

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

Create a session_set.php with the following code

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

Test output result xxdcsnd@sina.com

Note: php.ini session.save-hadler is set to user, otherwise session_set_save_handler will not take effect

The above is the detailed content of Example of how redis replaces php to implement file storage session. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn