예제를 보기 전에 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(); } }
세션 만들기_ 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
Note: php.ini session.save-hadler는 사용자로 설정됩니다. 그렇지 않으면 session_set_save_handler는 그렇지 않습니다. 효력을 발휘
위 내용은 Redis가 PHP를 대체하여 파일 저장 세션을 구현하는 방법의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!