sql >> Databasteknik >  >> NoSQL >> Redis

räkna antal sessioner i connect-redis

Ja, connect-redis använder redis.createClient() internt om du bara tillhandahåller den med referenser som du har ovan. Du kan också skicka det till en klient direkt.

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'
}));

För att få antalet sessioner vill du fråga redis för uppsättningen nycklar som matchar det nyckelprefixet. För connect-redis är detta "sess:".

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

Som de anger i redis-dokumentationen tar kommandot keys linjär tid så i stora system är det inte en bra idé att fråga detta ofta. Det är bättre att ha en separat räknare som du ökar när en användare loggar in och minskar när en användare loggar ut.




  1. Hur ändrar man samlingens namn i mongoose.model?

  2. mgo - frågeprestanda verkar konsekvent långsam (500-650ms)

  3. HSET om nyckel finns

  4. Hur gör man kapslad $lookup-sökning i MongoDB?