Heim  >  Artikel  >  Backend-Entwicklung  >  Eine Erklärung, wie Sitzungsdaten im Memcache gespeichert werden

Eine Erklärung, wie Sitzungsdaten im Memcache gespeichert werden

韦小宝
韦小宝Original
2018-03-14 12:46:421375Durchsuche

In diesem Artikel wird beschrieben, wie die Daten in der Sitzung im Memcache gespeichert werden. Viele Schüler wissen möglicherweise nicht viel darüber, wie die Daten in der Sitzung im Memcache gespeichert werden im Memcache. Gehe zum Memcache!

Speichern Sie die Daten der Sitzung im Memcache

Sitzung Die Daten werden standardmäßig in der Datei Datei gespeichert

, aber wir können die Konfiguration von php ändern, um sie an anderer Stelle zu speichern

(1), öffnen Sie D:lampphp/php.ini. session.save_handler = files ist aktiviert, kommentieren Sie es aus

Speicherpfad für Sitzungsinhalte, fügen Sie die rote Linie hinzu Dieser Satz

Ich habe es geändert und getestet

Session.php

<?php
session_start();
$_SESSION[&#39;name&#39;]=&#39;whj&#39;;
?>

Get_session.php

<?php
session_start();
$name=$_SESSION[&#39;name&#39;];
echo $name;
?>

AusgabewhjRichtig

(2), Aber So erhalten Sie die Variable session nicht mehr über das Attribut name, , sondern über session_id zum Speichern von

session_id:Wenn der Browser auf den Server zugreift, weist der Server dem Browser die session_id zu und sucht dann den entsprechenden Wert durch session_id

Beispiel:

session_start();
$_SESSION[&#39;age&#39;]=&#39;whjwhj&#39;;
$sess_id=session_id();
var_dump($sess_id);
//运行出来是string(26) "dmkppdo0qhbkq099fo608an383",在telnet中运行get dmkppdo0qhbkq099fo608an383的出age|s:6:"whjwhj";

Wenn Sie keine Berechtigung zum Ändern habenphp machen?

ini_set() Sie können einige Konfigurationen von php in der php-Datei festlegen

Sicherheitsproblem: Jetzt kann jeder auf meinen Memcache zugreifen, andere können auch auf mein Telnet 192.168.2.200,

zugreifen Lösung: Firewall

Die obige Sitzung wurde verwendet, als die php.ini-Konfigurationsdatei geändert wurde. Was jetzt getan wird, ist: Es gibt keine Sie müssen die Konfigurationsdatei ändern und direkt am Anfang der Datei hinzufügen:

ini_set(&#39;session.save_handler&#39;,&#39;memcache&#39;);
ini_set(&#39;session.save_path&#39;,&#39;tcp://127.0.0.1:11211&#39;);告诉它是用session保存到memcache的

Beispiel:

Ini_session.php

<?php
ini_set(&#39;session.save_handler&#39;,&#39;memcache&#39;);
ini_set(&#39;session.save_path&#39;,&#39;tcp://127.0.0.1:11211&#39;);
session_start();
class Hot{
         public $name;
         public $color;
         public function __construct($name,$color){
                   $this->name=$name;
                   $this->color=$color;
                   }
         }
 $hot=new Hot(&#39;xiaobei&#39;,&#39;white&#39;);
 $_SESSION[&#39;hot&#39;]=$hot;
?>

Get_ini_session.php

<?php
ini_set(&#39;session.save_handler&#39;,&#39;memcache&#39;);
ini_set(&#39;session.save_path&#39;,&#39;tcp://127.0.0.1:11211&#39;);
session_start();
class Hot{
         public $name;
         public $color;
         public function __construct($name,$color){
                   $this->name=$name;
                   $this->color=$color;
                   }
         }
$hot=$_SESSION[&#39;hot&#39;];
var_dump($hot);
?>

7 , Memcache:

Neustart

memcached , ein Neustart des Betriebssystems führt zum Verschwinden aller Daten. Darüber hinaus werden ungenutzte Caches automatisch gelöscht, nachdem die Inhaltskapazität den angegebenen Wert erreicht hat, basierend auf dem LRU (Least Recent Used) -Algorithmus.

Wenn Sie

expire auf 0 setzen, bedeutet dies, dass es nie abläuft, bis die Maschine neu gestartet oder der Dienst neu gestartet wird

Verwandte Artikel: Einführung in PHP-Sitzungssteuerungssitzung und Cookies

Das obige ist der detaillierte Inhalt vonEine Erklärung, wie Sitzungsdaten im Memcache gespeichert werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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