Session Manager by Redis
程序员文章站
2022-05-20 13:57:15
...
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('127.0.0.1', 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 ''; } } 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 '../Predis/src/Autoloader.php'; Predis\Autoloader::register(); include("SessionManager.php"); new SessionManager(); $_SESSION['username'] = "xugang"; echo "<a href = './session_get.php'>session</a>"; ?>
session_get.php
<?php require '../Predis/src/Autoloader.php'; Predis\Autoloader::register(); include("SessionManager.php"); new SessionManager(); echo $_SESSION['username']; ?>
下一篇: php define常量定义与变量区别
推荐阅读
-
oracle系统表中v$session、v$sql字段讲解
-
PHP基于Redis实现轻量级延迟队列
-
Appium新版本遇到的问题,不能通过 name 去定位元素抛 Message: Locator Strategy 'name' is not supported for this session
-
Redis集群的搭建
-
php自定文件保存session的方法
-
php通过session防url攻击方法
-
利用Memcached在php下实现session机制 替换PHP的原生session支持
-
nodejs redis 发布订阅机制封装实现方法及实例代码
-
Linux如何使用backup-manager工具备份系统
-
深入理解PHP原理之Session Gc的一个小概率Notice