php将文件类型session写入memcache

WBOY
Libérer: 2016-08-08 09:26:08
original
893 Les gens l'ont consulté
<?php class MemSession{
        private static $handler = null;
        private static $lifetime = null;
        private static $time = null;
        const MS = &#39;session&#39;;
        
        private static function init($handler){
            self::$handler = $handler;
            self::$lifetime = ini_get(&#39;session.gc_maxlifetime&#39;);
            self::$time = time();
        }
        
        public static function start($memcache){
            self::init($memcache);
            //调用类中的方法要用数组,__CLASS__代表本类
            session_set_save_handler(
                array(__CLASS__,&#39;open&#39;),
                array(__CLASS__,&#39;close&#39;),
                array(__CLASS__,&#39;read&#39;),
                array(__CLASS__,&#39;write&#39;),
                array(__CLASS__,&#39;destroy&#39;),
                array(__CLASS__,&#39;gc&#39;)
            );
            session_start();
        }
        
        public static function open($path,$name){
            
        }
        public static function close(){
            
        }
        
        public static function read($PHPSESSID){
            $val = self::$handler->get(self::session_key($PHPSESSID));
            
            if($val===false || $val==null){
                return false;
            }
            return $val;
        }
        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::$handle->delete(self::session_key($PHPSESSID));
        }
        //memcache本身就有限定时间,数据自动销毁,所以可不使用gc方法
        public static function gc($lifetime){
            return true;
        }
        
        //给sessionID加前缀,避免key重复
        private static function session_key($PHPSESSID){
            $session_key = self::MS.$PHPSESSID;
            return $session_key;
        }        
    }
    $mem = new Memcache;
    $mem->connect("localhost",11211) or die("could not connect");
    MemSession::start($mem);
Copier après la connexion

以上就介绍了php将文件类型session写入memcache,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!