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

Example of how redis replaces php to implement file storage session

黄舟
Release: 2023-03-16 20:38:02
Original
1055 people have browsed it

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

Create a session_set.php with the following code

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

Create a session_set.php with the following code

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

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!

Related labels:
Statement of this Website
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
Latest Issues
php redis connection problem
From 1970-01-01 08:00:00
0
0
0
About a small error in the redis manual
From 1970-01-01 08:00:00
0
0
0
python2.7 - django cannot connect to redis
From 1970-01-01 08:00:00
0
0
0
I can't connect to redis using php
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template