php之session最优将信息写入memcache中管理_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php之session最优将信息写入memcache中管理_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2664字,纯文字阅读大概需要4分钟。
内容图文
![php之session最优将信息写入memcache中管理_PHP教程](/upload/InfoBanner/zyjiaocheng/187/2d98c8bbe01d4cd383a9c84b9cde29cf.jpg)
php之session最优将信息写入memcache中管理
前面也讲到了用memcache存储数据信息缓存的方法和好处,这样能够减少访问数据库的次数,减少访问量大时对数据库的压力
将session存储到memcache中管理需要了解memcache、session的使用和session_set_save_handler()
同样先编写一个公用的类,当然采用静态的成员方法
memcache 指令用telnet操作
同样现在根目录下建立需要用到的文件
其中memsession.class.php 是公用的memcache存储类文件,one.php、two.php和three.php是测试文件,items.php 是输出数据数组的
session.class.php中:
首先定义连接memcache用到的变量并初始化
connect("localhost",11211) or die("could not connect"); MemSession::start($memcache);
注意的是 NS 为常量,定义下标
再初始化方法
//初始化方法 private static function init($handler){ self::$handler=$handler; self::$lifetime=ini_get('session.gc_maxlifetime'); self::$time=time(); }
开启session,并定义调用本类中的open、close等方法
//开启session public static function start(Memcache $memcache){ //首先将属性初始化 self::init($memcache); //调用handler,以后调用handler时都是用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() session_start(); }
接下来就是定义上面调用的这些方法
open() 和 close() 只要返回真就可以,但 open() 的参数为 路径(path) 和 名称(name)
public static function open($path, $name){ return true; } public static function close(){ return true; }
read() 只需要有PHPSESSID参数即可
但要判断传入的out 参数是否有值,有值就返回out的数据
public static function read($PHPSESSID){ $out=self::$handler->get(self::session_key($PHPSESSID)); //得到该下标输出的数据 if($out===false || $out ==null){ return ''; //out得到数据没有,返回空 } return $out; //返回得到的数据 }
write() :
返回自身的id,数据,和生命时长
public static function write($PHPSESSID, $data){ //判断是否有数据 $method=$data ? 'set' : 'relpace'; return self::$handler->$method(self::session_key($PHPSESSID), $data, MEMCACHE_COMPRESSED, self::$lifetime); }
destroy() 和 gc() :
destroy()调用自身的delete方法
public static function destroy($PHPSESSID){ return self::$handler->delete(self::session_key($PHPSESSID)); //调用delete方法 } public static function gc($lifetime){ return true; }
接下来需要定义一个传入PHPSESSID的方法
private static function session_key($PHPSESSID){ $session_key=self::NS.$PHPSESSID; //键值为自身和传进来的phpsessid return $session_key; }
结果显示
如果成功,在telnet中显示
表示session数据信息储存到memcache成功
http://www.bkjia.com/PHPjc/971083.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/971083.htmlTechArticlephp之session最优将信息写入memcache中管理 前面也讲到了用memcache存储数据信息缓存的方法和好处,这样能够减少访问数据库的次数,减少访问...
内容总结
以上是互联网集市为您收集整理的php之session最优将信息写入memcache中管理_PHP教程全部内容,希望文章能够帮你解决php之session最优将信息写入memcache中管理_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。