Redis
 sql >> Datenbank >  >> NoSQL >> Redis

2 Ansätze zum Verfolgen von Online-Benutzern mit Redis. Welche ist schneller?

Um zu wissen, 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 klar (ich habe keine harten Zahlen zur Leistung von Schnittmengen- oder Platzhalterschlüsseln gesehen), aber wenn der Satz groß genug ist, um Leistungsprobleme in beiden Implementierungen zu verursachen, ist es nicht praktikabel, ihn anzuzeigen sowieso alle.

Um Benutzer einer Freundesliste zuzuordnen, würde ich wahrscheinlich auch den ersten Ansatz wählen - selbst ein paar hundert Get-Operationen (Überprüfung des Status aller in der Liste) sollten die Schnittmenge bei mehreren Sätzen übertreffen, wenn diese Sätze eine große Anzahl von Datensätzen haben und sind schwer zu pflegen.

Redis-Sets eignen sich besser für Dinge, die mit Schlüsseln nicht 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.