Heim > Artikel > Backend-Entwicklung > memcached – PHP implementiert das Problem der Memcache-Speichersitzung
Setzen Sie zunächst session.save_handler = Benutzer ein, beachten Sie, dass es sich nicht um Memcache handelt.
Dann implementiert die benutzerdefinierte Klasse Session die SessionHandlerInterface-Schnittstelle, erstellt das Objekt und registriert session_set_save_handler, sodass jedes Mal zum Beispiel:
$_SESSION['aaa'] = '123';
, PHP ruft Session->write() auf. In der Funktion füge ich Datensätze mit sess- als Präfix und session_id() als Suffix manuell in den Memcache ein, zum Beispiel: key = sess-4fqrbhed9f3grq4p4ssbljg867.
Im Moment gibt es ein sehr seltsames Problem, wenn ich $_SESSION['aaa'] = '123' folge und zum Memcache gehe, um die Daten abzurufen, die dieser session_id() entsprechen lösche es. $_SESSION['aaa'] = '123'; Danach werden die Daten im Memcache automatisch gelöscht.
Setzen Sie zunächst session.save_handler = Benutzer ein, beachten Sie, dass es sich nicht um Memcache handelt.
Dann implementiert die benutzerdefinierte Klasse Session die SessionHandlerInterface-Schnittstelle, erstellt das Objekt und registriert session_set_save_handler, sodass jedes Mal zum Beispiel:
$_SESSION['aaa'] = '123';
, PHP ruft Session->write() auf. In der Funktion füge ich Datensätze mit sess- als Präfix und session_id() als Suffix manuell in den Memcache ein, zum Beispiel: key = sess-4fqrbhed9f3grq4p4ssbljg867.
Im Moment gibt es ein sehr seltsames Problem, wenn ich $_SESSION['aaa'] = '123' folge und zum Memcache gehe, um die Daten abzurufen, die dieser session_id() entsprechen lösche es. $_SESSION['aaa'] = '123'; Danach werden die Daten im Memcache automatisch gelöscht.
php.ini ändern
session.save_handler = memcache
session.save_path = tcp://127.0.0.1:11211;tcp://127.0.0.1:11212;tcp://127.0.0.1: 11213
Gelöst, weil SessionHandlerInterface::read() nicht implementiert ist, was dazu führt, dass $_SESSION nach der Aktualisierung auf einen Nullwert gesetzt wird, was dann dazu führt, dass dieser Nullwert nach dem Aufruf von write geschrieben wird.