>백엔드 개발 >PHP 튜토리얼 >redis는 세션 인스턴스를 저장합니다.

redis는 세션 인스턴스를 저장합니다.

小云云
小云云원래의
2017-12-14 14:34:121250검색

이 글은 주로 redis가 세션을 저장하기 위해 php 파일을 대체하는 경우에 대한 관련 정보를 소개합니다. 이 글이 모든 사람에게 도움이 되기를 바라며, 필요한 친구들이 참고할 수 있기를 바랍니다. 모든 사람.

redis는 세션 인스턴스를 저장하기 위해 PHP 파일을 대체합니다.

예제를 보기 전에 PHP session_set_save_handler 함수의 사용법을 이해하시기 바랍니다

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

다음과 같이 session_set.php 코드를 생성하세요


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

다음과 같이 session_set.php 코드를 생성합니다.


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

테스트 출력 결과 xxdcsnd@sina.com

참고 : pHP.ini session.save-hdler는 사용자로 설정됩니다. 그렇지 않으면 session_set_save_handler 적용되지 않습니다

관련 권장 사항:

Redis 최적화 경험 요약

PHP 배포판에서 Redis가 세션을 구현하는 방법🎜🎜🎜🎜PHP에서 Redis 기능 사용 요약🎜 🎜

위 내용은 redis는 세션 인스턴스를 저장합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.