Om te weten of een bepaalde gebruiker online is, is de eerste methode een stuk sneller - niets is sneller dan het lezen van een enkele sleutel.
Het vinden van gebruikers op een bepaalde pagina is niet zo duidelijk (ik heb geen harde cijfers gezien over de prestaties van snijpunten of jokertekens), maar als de set groot genoeg is om prestatieproblemen te veroorzaken bij beide implementaties, is het niet praktisch om weer te geven ze toch allemaal.
Voor het matchen van gebruikers met een vriendenlijst zou ik waarschijnlijk ook voor de eerste benadering gaan - zelfs een paar honderd get-bewerkingen (de status van iedereen in de lijst controleren) zouden de intersectie op meerdere sets moeten overtreffen als die sets een groot aantal records hebben en zijn moeilijk te onderhouden.
Redis-sets zijn meer geschikt voor dingen die niet met sleutels kunnen worden gedaan, vooral wanneer het belangrijker is om alle items in de set te krijgen dan te controleren of een bepaald item in de set zit.