将session信息写入到memcache中管理
来源:互联网 发布:专业摩托车导航软件 编辑:程序博客网 时间:2024/05/02 02:35
最近在学习高级会话:
一、学习了用cookie模拟用户登录注册退出流程,信息写入$_COOKIE数组,依赖于客户端浏览器,安全性也低
二、又学习了session模拟用户登录注册退出流程,信息写入$_SESSION数组,保存在服务器端。
但是基于session技术:又有多种方式,
1)基于cookie的,让客户端浏览器用cookie方式记住session_id,实现
2)基于url的,让地址栏上每一刻都记录着session_id,(可以用变量记住,也可以用SID,也是多种方式),即客户浏览器禁用cookie的情况下。
三、再有就是session服务器端的管理
主要就是围绕这个扩展在动 session.save_handler = files/user/memcache
1)保存到文件,可以是系统默认的方式,不用改配置文件任何地方。也可以是自定义的(上面改成user),重写session.save_handler(其中又包含6个方法)
2)保存到数据库中。上面的配置改成user,重写session.save_handler(其中又包含6个方法)
3)保存到memcache中,这种是最快最优的保存方式,同上,配置改成user,重写session.save_handler(其中又包含6个方法)
保存到memcache这种情况,也可以用系统自带的,需要改配置:
session.save_handler = memcache
session.save_path = "tcp://localhost:11211" ;这个地方写成这样就是直接写入memcache数据库,多个服务器,用逗号隔开
然后,这种情况就不用重写session.save_handler了。
上面的这三种方式,本博客里,都有实现,可以看看相关内容。
这篇是将session信息保存到memcache中,session.save_handler = user 的情况。 初学者,问题可能还有很多,多多指出。
<?php/***将信息写入到Memcache中管理***/class MemSession { private static $handler = null; //数据库连接 private static $lifetime = null; //垃圾回收时间 private static $time = null; //当前时间 const NS ='session_'; // //初始化,给变量附上值 private static function init($handler){ self::$handler = $handler; self::$lifetime = ini_get('session.gc_maxlifetime'); self::$time=time(); } public static function start(Memcache $memcache){ self::init($memcache); session_set_save_handler( //回调函数 array(__CLASS__,'open'), //调用本类的open方法 array(__CLASS__,'close'), array(__CLASS__,'read'), array(__CLASS__,'write'), array(__CLASS__,'destroy'), array(__CLASS__,'gc') ); session_start(); } public static function open($path,$name){ return true; } public static function close(){ return true; } //从memcache中读取 public static function read($PHPSESSID){ $out=self::$handler->get(self::session_key($PHPSESSID)); if($out === false || $out == null) return ''; return $out; } //写入memcache中 public static function write($PHPSESSID,$data){ $method =$data?'set':'replace'; return self::$handler->$method(self::session_key($PHPSESSID),$data,MEMCACHE_COMPRESSED,self::$lifetime); } public static function destroy($PHPSESSID){ return self::$handler->delete(self::session_key($PHPSESSID)); } public static function gc($lifetime){ return true; } //拼凑session_id,在前面加上前缀 public static function session_key($PHPSESSID){ $session_key = self::NS.$PHPSESSID ; //设置session键 return $session_key; } }$memcache = new Memcache();//连接mem数据库$memcache->connect('localhost',11211) or exit("could not connect!");//开启服务MemSession::start($memcache);?>
- 将session信息写入到memcache中管理
- php之session最优将信息写入memcache中管理
- session写入memcache中管理
- php将session写入memcache中。
- XML:将信息写入到XML中
- php将文件类型session写入memcache
- 将session保存到memcache
- 将session信息写入数据库
- PHP高级配置 ---将session存到Memcache缓存中
- 如何将session数据保存到memcache中,以及memcache的生存周期
- 如何将session数据保存到memcache中,以及memcache的生存周期
- OpenCV - 将图片的二进制信息写入到文件中
- 将session写入数据库中
- PHP将session保存到memcache服务器
- php将session信息写入数据库
- session写入memcache
- session写入memcache
- 将信息写入keychain中
- AirPlay、DLNA、Miracast三大无线技术介绍
- Lesson3: 简单绘图
- 钳位电路
- 在IIS8添加WCF服务支持
- MFC删除多级目录
- 将session信息写入到memcache中管理
- 解决secureCRT中文乱码问题
- Jquery 创建一个临时层
- hdu 4631 Sad Love Story(最近点对+暴力)
- VirtualBox 使用物理硬盘作为虚拟机硬盘
- 最长等差数列分析
- 手机应用交互设计
- hdu 3038 How Many Answers Are Wrong
- 一个例子说明java数据类型包括对象是赋值还是引用!!!