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.