• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

将Session写入Memcache

php 搞代码 3年前 (2022-01-23) 14次浏览 已收录 0个评论

通过session_set_save_handler()方法自定义Session写入Memcache

<span> 1</span> <?<span>php    </span><span> 2</span>     <span>class</span><span> MemSession{</span><span> 3</span>         <span>private</span> <span>static</span> <span>$handler</span> = <span>null</span><span>;</span><span> 4</span>         <span>private</span> <span>static</span> <span>$lifetime</span> = <span>null</span><span>;</span><span> 5</span>         <span>private</span> <span>static</span> <span>$time</span> = <span>null</span><span>;</span><span> 6</span>         <span>const</span> MS = 'session'<span>;</span><span> 7</span>         <span> 8</span>         <span>private</span> <span>static</span> <span>function</span> init(<span>$handler</span><span>){</span><span> 9</span>             self::<span>$handler</span> = <span>$handler</span><span>;</span><span>10</span>             self::<span>$lifetime</span> = <span>ini_get</span>('session.gc_maxlifetime'<span>);</span><span>11</span>             self::<span>$time</span> = <span>time</span><span>();</span><span>12</span> <span>        }</span><span>13</span>         <span>14</span>         <span>public</span> <span>static</span> <span>function</span> start(<span>$memcache</span><span>){</span><span>15</span>             self::i<strong>+本文来源gao@daima#com搞(%代@#码网</strong><pre>搞代gaodaima码

nit($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);

以上就介绍了将Session写入Memcache,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:将Session写入Memcache
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址