使用redis存储session
来源:互联网 发布:媒体姓党 魂归大海知乎 编辑:程序博客网 时间:2024/05/13 20:59
准备工作参考以前的博客安装redis、安装phpredis。
具体代码
ini_set('session.save_handler', 'redis');ini_set('session.save_path', 'tcp://127.0.0.1:6379');session_start();$_SESSION['sessionid'] = 'this is session content!';echo $_SESSION['sessionid'] . "\n";
在命令行上运行此脚本后,会打印
进入到redis,输入图中命令也能发现session数据已存入
若是redis配置了密码,只需'tcp://127.0.0.1:6379?auth=authpwd'(注:authpwd为redis密码),尤其要注意的是要查看phpredis的版本,版本低的话会报错,我的就报了“Warning: Unknown: Failed to write session data (redis). Please verify that the current setting of session.save_path is correct (tcp://127.0.0.1:6379?auth=test) in Unknown on line 0”,后来升级了之后便好了。
[updated] 自定义redis的session类
class Redis_Session implements SessionHandlerInterface{ private $handle; private $lifetime; private $prefix = 'TESTSID:'; /** * open session * @param string $save_path * @param string $session_name * @return bool */ public function open($save_path, $session_name) { $this->handle = new redis; $this->handle->connect('127.0.0.1', '6379'); $this->lifetime = ini_get('session.gc_maxlifetime'); return true; } /** * close session * @return bool */ public function close() { $this->gc($this->lifetime); $this->handle->close(); $this->handle = null; return true; } /** * read session by session_id * @param string $session_id * @return mixed */ public function read($session_id) { $session_id = $this->prefix . $session_id; $data = $this->handle->get($session_id); $this->handle->expire($session_id, $this->lifetime); return $data; } /** * write session by session_id * @param string $session_id * @param string $session_data * @return mixed */ public function write($session_id, $session_data) { $session_id = $this->prefix . $session_id; $this->handle->set($session_id, $session_data); return $this->handle->expire($session_id, $this->lifetime); } /** * delete session_id * @param string $session_id * @return mixed */ public function destroy($session_id) { return $this->handle->rm($this->prefix . $session_id); } /** * this function is no use because of redis expire * @param int $maxlifetime * @return bool */ public function gc($maxlifetime) { return true; }}$handler = new Redis_Session();session_set_save_handler($handler, true);session_start();$_SESSION['id'] = 1;echo $_SESSION['id'];
0 0
- 使用redis存储session
- thinkphp使用redis存储session
- Tomcat 使用Redis存储Session
- 使用spring session存储session到redis
- tomcat使用redis存储共享session
- Asp.net Core 使用Redis存储Session
- asp.net使用redis存储session(RedisSessionStateProvider)
- spring-session 使用redis来存储session配置文件
- redis实战之使用redis存储session数据
- Redis应用——使用Redis存储Session
- redis实战之使用redis存储session数据
- Session存储到Redis
- Tomcat7+Redis存储Session
- Tomcat7+Redis存储Session
- Tomcat7+Redis存储Session
- php Redis存储Session
- Tomcat7+Redis存储Session
- Session存储到Redis
- Foundation框架下的基本类
- sql server多条数据拼接成字符串
- PHP中命名空间的引用
- POJ1316 Milking Time【dp】
- 转载_经典蓝牙(Profile)构成
- 使用redis存储session
- Day7.29
- springMVC整合memcached,以注解形式使用
- 浏览器window对象
- [leetcode-34]Search Insert Position(c)
- 在Eclipse的DDMS中查找genymotion模拟器的sdcard中的文件---开发中遇到的问题(一)
- JAVA注解 实现一个简单的sql语句生成器
- 解答《编程之美》1.18问题1:给所有未标识方块标注有地雷概率
- 安卓中找不到Theme.AppCompat.Light的解决方法