2010-05-23 13 views
7

Ich dachte über die Verwendung von Memcached, um Sitzungen statt mySQL zu speichern, die zunächst eine gute Idee schien.Ansätze für Memcached-Sitzungen

Wenn es um den Failover-Teil der Verwendung von Memcached-Servern geht, ist es etwas beunruhigend, dass meine Sitzungen nicht mehr funktionieren, wenn Memcached offline gehen würde. Es wird sicherlich meine Benutzer beeinflussen.

Es gibt ein paar Techniken, die wir bereits einsetzen, um Failover zu reduzieren, einschließlich eines Pools von Servern zur Kompensation im Fall von Ausfallzeiten, Nutzung von Sharding/Consistent Hashing über den Server-Pool und so weiter. Wir würden auch eine Art graziöse Degradierung vornehmen, die den Benutzern mitteilt, dass etwas schiefgelaufen ist und sie sich erneut anmelden können, falls sie aufgrund eines Memcached-Server-Failovers gekündigt werden.

Wie gehen Menschen im Allgemeinen mit diesen Problemen um, wenn sie Sitzungen auf Memcached-Servern speichern?

Antwort

3

Sie können eine fehlersichere Methode erstellen, indem Sie sowohl db als auch memcached verwenden. Überprüfen Sie, ob sich Ihr memcached-Objekt im Speicher befindet, speichern Sie die Sitzung in der db und erstellen Sie dann die memcache-Instanz. Nur sicher machen, wenn sich abmelden/abmelden, spült es/die Memcached entfernt ...

Also zuerst Memcached überprüfen, wenn fehlschlägt, überprüfen db ... :)

+0

Smart! Ein bisschen mehr Code, aber bessere Leistung. Ich mag es! – Industrial

9

Erstens, wenn Sie etwas nur in Memcache legen, sollten Sie OK sein, es zu verlieren. Für alles andere gibt es dauerhaften Speicher.

Zweitens stürzt Memcached einfach nicht sehr oft. Es gibt keine beweglichen Teile wie Disketten. Die einzigen Male, an denen ich Sitzungen verlor, waren Neustarts für Kernel-Upgrades. Aber diese Sitzungen zu verlieren, war wegen des ersten Punktes keine große Sache.

Um Ihre Frage direkt zu beantworten, wenn ein Datum in Ordnung zu verlieren ist, ist das Speichern in einer Memcache-Sitzung nur OK. Wenn es nicht in Ordnung ist zu verlieren, speichern Sie es in persistentem Speicher und speichern Sie es möglicherweise in Memcache für Geschwindigkeit.

3

Jeder, der dies in Betracht zieht, sollte Dormando's session post lesen. Es hat alle Details, die du dir wünschen kannst.

+0

Hallo! Gute Verbindung! – Industrial

+0

404 für jetzt, bitte, wenn Sie irgendwelche Updates haben – Sekai

Verwandte Themen