将Session写入Memcache,sessionmemcache_PHP教程
程序员文章站
2022-05-28 09:34:07
...
将Session写入Memcache,sessionmemcache
通过session_set_save_handler()方法自定义Session写入Memcache
1 php 2 class MemSession{ 3 private static $handler = null; 4 private static $lifetime = null; 5 private static $time = null; 6 const MS = 'session'; 7 8 private static function init($handler){ 9 self::$handler = $handler; 10 self::$lifetime = ini_get('session.gc_maxlifetime'); 11 self::$time = time(); 12 } 13 14 public static function start($memcache){ 15 self::init($memcache); 16 //调用类中的方法要用数组,__CLASS__代表本类 17 session_set_save_handler( 18 array(__CLASS__,'open'), 19 array(__CLASS__,'close'), 20 array(__CLASS__,'read'), 21 array(__CLASS__,'write'), 22 array(__CLASS__,'destroy'), 23 array(__CLASS__,'gc') 24 ); 25 session_start(); 26 } 27 28 public static function open($path,$name){ 29 30 } 31 public static function close(){ 32 33 } 34 35 public static function read($PHPSESSID){ 36 $val = self::$handler->get(self::session_key($PHPSESSID)); 37 38 if($val===false || $val==null){ 39 return false; 40 } 41 return $val; 42 } 43 public static function write($PHPSESSID,$data){ 44 $method = $data? 'set':'replace'; 45 return self::$handler->$method(self::session_key($PHPSESSID),$data,MEMCACHE_COMPRESSED,self::$lifetime); 46 } 47 48 public static function destroy($PHPSESSID){ 49 return self::$handle->delete(self::session_key($PHPSESSID)); 50 } 51 //memcache本身就有限定时间,数据自动销毁,所以可不使用gc方法 52 public static function gc($lifetime){ 53 return true; 54 } 55 56 //给sessionID加前缀,避免key重复 57 private static function session_key($PHPSESSID){ 58 $session_key = self::MS.$PHPSESSID; 59 return $session_key; 60 } 61 } 62 $mem = new Memcache; 63 $mem->connect("localhost",11211) or die("could not connect"); 64 MemSession::start($mem);
上一篇: 关于VSphp的问题
下一篇: 实例状态为已停止如何调用该接口
推荐阅读
-
Express全系列教程之(九):将session上传至mysql数据库
-
PHP将session保存到memcache服务器
-
怎么将WinPE写入移动硬盘 利用天意U盘维护系统将WinPE写入移动硬盘教程
-
基于php使用memcache存储session的详解_PHP教程
-
php将session放入memcached的设置方法_PHP教程
-
php使用 memcache 来存储 session 方法总结_PHP教程
-
PHP实现多web服务器共享SESSION数据-session数据写入mysql数据库_PHP教程
-
将Session写入数据库,Session写入数据库_PHP教程
-
解决memcache中使用session_start启动慢_PHP教程
-
php将session信息写入数据库