国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP實現(xiàn)負(fù)載均衡下的session共用功能

2024-05-05 00:03:15
字體:
供稿:網(wǎng)友

本文實例講述了PHP實現(xiàn)負(fù)載均衡下的session共用功能。分享給大家供大家參考,具體如下:

最近忙于開發(fā)臺灣運動彩券第四版的程序,所以已經(jīng)很久沒有上來寫東西了,今天隨便寫點東西和大家分享.

首先說一下負(fù)載均衡,相信大家都知道負(fù)載均衡可以很好地解決網(wǎng)站大流量的問題,負(fù)載均衡就是把用戶的請求分發(fā)到多態(tài)pc上進行處理,既然分發(fā)了請求那么session就要考慮好處理方法.傳統(tǒng)情況下php會把session存入本機的暫存檔內(nèi),可是這種情況下分發(fā)了之后session就丟失了,其實最簡單的解決方法就是用memcache來托管,單獨架設(shè)一臺服務(wù)器用來作為memcache服務(wù)器(內(nèi)存最好是大一點),接下來的工作就交給PHP代碼來做就好了,這裡我不想修改php.ini,因為每臺都改的話太累,而且我又比較懶

或許您會告訴我說直接修改一下php.ini的session存儲位置就能寫入memcache了,是,沒錯,但是這種方式卻不能調(diào)用gc釋放掉過期的會話,而今天我們要說的就是不但要讓他托管,還得讓他自動釋放會話.

既然要做,那就要做到完美才行,下邊是我的代碼,不懂得自己看注釋:

$_ENV=array(  'SYS'=>array(    'Memip'=>'127.0.0.1',      //MEMCACHE的ip    'Mempt'=>11211,       //MEMCACHE的port    'Memtim'=>10,          //MEMCACHE的超時時間  ));//托管SESSION到MEMCACHE,如果開啟失敗,則說明MEMCACHE沒有配置正確final class S{  public static function open(){  //禁止session自動開啟    session_write_close();  ini_set('session.auto_start',0);  //使用五十分之一的概率啟動gc清理會話  ini_set('session.gc_probability',1);  ini_set('session.gc_divisor',50);  ini_set('session.use_cookies',1);  //session的壽命  //ini_set('session.gc_maxlifetime',$_ENV['SYS']['Memtim']);  //ini_set('session.cookie_lifetime',$_ENV['SYS']['Memtim']);  //ini_set('session.save_handler','files');  //ini_set('session.save_path',Run.'_tmp');  //ini_set('session.save_handler','memcache');  //ini_set('session.save_path','tcp://127.0.0.1:11211');    //$_ENV['S_tim'] = ini_get('session.gc_maxlifetime');  //建立memcache對象  $_ENV['S_mem']=new Memcache;  $_ENV['S_mem']->connect($_ENV['SYS']['Memip'],$_ENV['SYS']['Mempt']) or die('Memcache連接失敗!');    return TRUE;  }  /**    讀取    返回:讀到的內(nèi)容  /**/  public static function read($id){    return $_ENV['S_mem']->get('s_'.$id);  }  /**    寫入    返回:bool  /**/  public static function write($id,$data){    return $_ENV['S_mem']->set('s_'.$id,$data,MEMCACHE_COMPRESSED,$_ENV['SYS']['Memtim']);  }  /**    關(guān)閉    返回:bool  /**/  public static function close(){    $_ENV['S_mem']->close();    unset($_ENV['S_mem'],$_ENV['SYS']['Memtim']);    return TRUE;  }  /**    刪除    返回:bool  /**/  public static function destroy($id){    return $_ENV['S_mem']->delete('s_'.$id);  }  /**    清理    返回:bool  /**/  public static function gc(){    return TRUE;  }}session_set_save_handler('S::open','S::close','S::read','S::write','S::destroy','S::gc');$_ENV['sessionid']=(isset($_REQUEST['sessionid'])) ? trim($_REQUEST["sessionid"]) : session_id();if($_ENV['sessionid']!=''){session_id($_ENV['sessionid']);}session_start();

希望本文所述對大家PHP程序設(shè)計有所幫助。


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 玉田县| 洛扎县| 广宗县| 和平县| 攀枝花市| 谢通门县| 阆中市| 德安县| 永登县| 浦江县| 错那县| 潮州市| 洞口县| 达孜县| 罗田县| 宁都县| 伊吾县| 道孚县| 封丘县| 徐汇区| 正蓝旗| 彝良县| 连南| 合川市| 科技| 孟州市| 富川| 望江县| 光泽县| 图木舒克市| 萨嘎县| 开阳县| 长乐市| 准格尔旗| 临安市| 延长县| 遵化市| 桐柏县| 家居| 五大连池市| 怀集县|