Dieser Artikel stellt hauptsächlich die Sitzungsfreigabefunktion unter Lastausgleich in PHP vor und analysiert die relevanten Implementierungstechniken der Memcache-basierten Sitzungsfreigabe in Form von Beispielen. Freunde in Not können sich auf
Diesen Artikel beziehen erklärt die Beispiele. Verwenden Sie PHP, um die Sitzungsfreigabefunktion unter Lastausgleich zu realisieren. Ich teile es Ihnen als Referenz mit:
Ich war in letzter Zeit damit beschäftigt, das Programm für die vierte Ausgabe der Taiwan Sports Lottery zu entwickeln, daher habe ich schon lange nichts mehr geschrieben. Heute habe ich gerade etwas geschrieben, das ich mit Ihnen teilen möchte. Lassen Sie uns zunächst über den Lastausgleich sprechen. Ich glaube, jeder weiß, dass der Lastausgleich das Problem des großen Website-Verkehrs lösen kann Da die Anfrage verteilt wird, muss die Sitzung in Betracht gezogen werden. Traditionell speichert PHP die Sitzung in der lokalen temporären Datei, aber in diesem Fall geht die Sitzung verloren Die einfachste Lösung besteht darin, Memcache zum Hosten zu verwenden und einen separaten Server einzurichten (es ist am besten, einen größeren Speicher zu haben), und die nächste Arbeit kann dem PHP-Code überlassen werden Ich möchte php.ini hier ändern, weil es zu ermüdend wäre, es für jeden Server zu ändern, und ich bin faul
Vielleicht sagen Sie mir, dass ich einfach den Sitzungsspeicherort von
php.ini Ja, das stimmt, aber Sie können die abgelaufene Sitzung nicht auf diese Weise freigeben. Wir möchten heute nicht nur darüber sprechen, ob sie gehostet werden kann, sondern auch, ob sie möglich ist Geben Sie die Sitzung automatisch frei.Da Sie es tun möchten, müssen Sie es perfekt machen. Hier ist mein Code. Ich weiß nicht, wie man Kommentare selbst liest:
Verwandte Empfehlungen:
$_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_pisor',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; } /** 读取 返回:读到的內容 /**/ 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']); } /** 关闭 返回: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 implementiert eine einfache Redis-Dokumentsperre und verhindert gleichzeitige wiederholte Aufrufe
PHP-Methode zum dynamischen Abrufen von Funktionsparametern
PHP-Methode zum Erhalten von Datei-Mime-Typ-Tool-Klasse example_php-Tipps
Das obige ist der detaillierte Inhalt vonPHP implementiert die Sitzungsfreigabefunktion unter Lastausgleich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!