继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

PHP 自定义session储存 MEMCACHE 方式类

慕村225694
关注TA
已关注
手记 272
粉丝 7
获赞 28

自定义session储存 MEMCACHE 方式类

在php.ini配置文件中更改设置 (Registered_save_handlers 有三种方式 files user memcache)

session.save_handler = user 表示用户自定义session类

<?php 

/*

 * 自定义session储存memcache方式的类

 * 

 */

 class MemSession{    

      public  static  $mem;                     //pdo的对象

      public  static $maxlifetime;         //最大生存时间

 

       

      public static function start(Memcache $mem){//限制变量是Memcache类

            self::$mem               =   $mem;

            self::$maxlifetime =    ini_get('session.gc_maxlifetime'); 

                      

          //注册自定义函数

          session_set_save_handler(

              array(__CLASS__,'open'), 

               array(__CLASS__,'close'),

               array(__CLASS__,'read'),

               array(__CLASS__,'write'),

               array(__CLASS__,'destroy'),

               array(__CLASS__, 'gc'));

          //开启会话

          session_start();

      }

       

        //开始 sesssion_start()

        public static function  open($path,$name){

            echo 'open<br/>';

            return true;

        }

        //关闭

        public static function close(){

            echo 'close<br/>';

           return true;

        }

        //读取 echo 

        public static function read($sid){

            echo 'read<br/>';  

            $data = self::$mem->get($sid);

            if(empty($data)){

                return ' ';

            }

            return $data;

            }

        //写入 $_SESSION['username']='yang'

        public static function write($sid,$data){

            echo 'write<br/>';

            self::$mem->set($sid, $data,MEMCACHE_COMPRESSED,self::$maxlifetime);// 如果设置为0表明该元素永不过期

        }

        //销毁 session_destroy

        public static function destroy($sid){

            echo 'destroy<br/>';     

            self::$mem->delete($sid,0);//0 表示立即删除 0秒

        }

        //回收垃圾

        public static function gc($maxlifetime){

            echo 'gc<br/>';            

            return true;

 }

 }

 

 //创建对象

 $mem = new Memcache();

 //添加两台memcache服务器

 $mem->addserver('localhost',11211);

 $mem->addserver('192.168.10.254',11211);

 //开始

 MemSession::start($mem);

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP