Mailinglisten-Archive |
Hallo, ich arbeite gerade an einer Autorisierungsklasse und überlege wie Sessions optimal (bzgl. der Performance) eingebunden werden können. Die klassische Speicherung der serialisierten Session auf der Festplatte erscheint mir dabei suboptimal. Die einfachste Methode (root-Rechte vorausgesetzt) der Performancesteigerung wäre eine Bereich des Arbeitsspeichers dynamisch per "mount -t tmpfs namedesmediums /pfad/zum/einhängepunkt" bereitstellen zu lassen, mit "mount namedesmediums" einzuhängen und mittels "session_save_path('/pfad/zum/einhängepunkt');" dem Skript mitzuteilen wo es seine serialisierten Sessions speichern/lesen soll. Die zweite Methode setzt mehr Programmierarbeit voraus, kommt dafür ohne root-Rechte bzw. Rootserver aus. Die serialisierte Session z.B. in einer MySQL-Tabelle vom Typ MEMORY ablegen und die Sessionroutinen mittels "session_set_save_handler([...]);" entsprechend umbiegen. Hat jemand Erfahrung mit einer oder gar beiden Methoden? (Anm.: Bei der zweiten Methode verwirrt mich einer der Kommentare zur entsprechenden Funktion. [http://de2.php.net/manual/de/function.session-set-save-handler.php] patrick at eternalspace dot com schrieb am 13-Dec-2008: [...] When a custom write() method gets the $session_hash and the $data of the session, the $data has binary data in it! Therefore, stripslashes() or mysql_real_escape_string() will NOT properly prepare a collapsed $_SESSION string for database storage! [...] Ist das nicht egal ob binäre Daten escaped werden? Wichtig ist meiner Einschätzung eher, dass das Speicherfeld binäre Daten aufnehmen kann. mysql_real_escape_string() hat doch "nur" die Aufgabe, dass die Eingabe nicht die Syntax verfälschen kann?)
php::bar PHP Wiki - Listenarchive