Heim > Backend-Entwicklung > PHP-Tutorial > PHP implementiert die Sitzungsfreigabefunktion unter Lastausgleich

PHP implementiert die Sitzungsfreigabefunktion unter Lastausgleich

不言
Freigeben: 2023-03-24 08:22:02
Original
1429 Leute haben es durchsucht

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();
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage