>php教程 >PHP源码 >Session Manager by Redis

Session Manager by Redis

PHP中文网
PHP中文网원래의
2016-05-26 08:19:05937검색

SessionManager.php 

<?php 
	/**
	* SessionManager
	*/
	class SessionManager
	{
		private $redis;
		private $sessionSavePath;
		private $sessionName;
		private $sessionExpireTime = 30;

		function __construct()
		{
			$this->redis = new Predis\client();
			$this->redis->connect(&#39;127.0.0.1&#39;, 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($patn, $name){
			return true;
		}

		public function close()
		{
			return true;
		}

		public function read($id)
		{
			$value = $this->redis->get($id);
			if ($value) {
				return $value;
			}else{
				return &#39;&#39;;
			}
		}

		public function write($id, $data)
		{
			var_dump($id);
			if ($this->redis->set($id, $data)) {
				$this->redis->expire($id, $this->sessionExpireTime);
				return true;
			}
			return false;
		}

		public function destroy($id)
		{
			if ($this->redis->delete($id)) {
				return true;
			}
			return false;
		}

		public function gc($maxlifetime)
		{
			return true;
		}

		public function __destruct()
		{
			session_write_close();
		}
	}
 ?>

session_set.php 

<?php 
	require &#39;../Predis/src/Autoloader.php&#39;;

	Predis\Autoloader::register();

	include("SessionManager.php");
	new SessionManager();

	$_SESSION[&#39;username&#39;] = "xugang";

	echo "<a href = &#39;./session_get.php&#39;>session</a>";
 ?>

session_get.php

<?php 
	require &#39;../Predis/src/Autoloader.php&#39;;

	Predis\Autoloader::register();

	include("SessionManager.php");
	new SessionManager();
	echo $_SESSION[&#39;username&#39;];
 ?>

                               

                   

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