3 Stimmen

2 Ansätze zur Verfolgung von Online-Nutzern mit Redis. Welcher ist schneller?

Kürzlich habe ich einen netten Blogbeitrag gefunden, in dem 2 Ansätze zur Verfolgung von Online-Nutzern einer Website mit Hilfe von Redis vorgestellt werden.

1) Smart-Keys und Einstellung ihres Ablaufs http://techno-weenie.net/2010/2/3/where-s-waldo-track-user-locations-with-node-js-and-redis

2) Set-s und Schnittmengen http://www.lukemelia.com/blog/archives/2010/01/17/redis-in-practice-whos-online/

Können Sie einschätzen, welcher von beiden schneller sein sollte und warum?

4voto

Tom Clarkson Punkte 15764

Um festzustellen, ob ein bestimmter Benutzer online ist oder nicht, ist die erste Methode viel schneller - nichts ist schneller als das Lesen eines einzelnen Schlüssels.

Das Auffinden von Benutzern auf einer bestimmten Seite ist nicht so eindeutig (ich habe keine konkreten Zahlen zur Leistung von Schnitt- oder Platzhalterschlüsseln gesehen), aber wenn die Menge groß genug ist, um bei beiden Implementierungen Leistungsprobleme zu verursachen, ist es ohnehin nicht sinnvoll, sie alle anzuzeigen.

Für den Abgleich von Benutzern mit einer Freundesliste würde ich wahrscheinlich auch den ersten Ansatz wählen - selbst ein paar hundert Get-Operationen (Überprüfung des Status aller Personen in der Liste) sollten die Überschneidung mehrerer Sätze übertreffen, wenn diese Sätze eine große Anzahl von Datensätzen haben und schwer zu pflegen sind.

Redis-Sets eignen sich besser für Dinge, die nicht mit Schlüsseln erledigt werden können, insbesondere wenn es wichtiger ist, alle Elemente im Set zu erhalten als zu prüfen, ob ein bestimmtes Element im Set enthalten ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X