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

Anzahl der Sitzungen in Connect-Redis zählen

Ja, connect-redis verwendet redis.createClient() intern, wenn Sie ihm nur Anmeldeinformationen wie oben zur Verfügung stellen. Sie können ihm auch direkt einen Client übergeben.

var redisClient = redis.createClient(6379, "127.0.0.1", { auth_pass: "RedisPASS" });
redisClient.select(2);

app.use(express.session({
    store: new RedisStore({
         client: redisClient
    }),
    secret: '1234567890QWERTY'
}));

Um die Anzahl der Sitzungen zu erhalten, sollten Sie redis nach dem Satz von Schlüsseln abfragen, die mit diesem Schlüsselpräfix übereinstimmen. Für connect-redis ist dies "sess:".

redisClient.keys("sess:*", function(error, keys){
    console.log("Number of active sessions: ", keys.length);
});

Wie in der Redis-Dokumentation angegeben, dauert der Schlüsselbefehl linear, daher ist es in großen Systemen keine gute Idee, dies häufig abzufragen. Sie sollten besser einen separaten Zähler führen, den Sie erhöhen, wenn sich ein Benutzer anmeldet, und verringern, wenn sich ein Benutzer abmeldet.