sql >> Base de Datos >  >> NoSQL >> Redis

contar el número de sesiones en connect-redis

Sí, connect-redis usa redis.createClient() internamente si solo le proporciona credenciales como las que tiene arriba. También puedes pasarlo directamente a un cliente.

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

Para obtener la cantidad de sesiones, querrá consultar redis para el conjunto de claves que coincidan con ese prefijo de clave. Para connect-redis esto es "sess:".

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

Como se indica en la documentación de redis, el comando de teclas toma un tiempo lineal, por lo que en sistemas grandes no es una buena idea consultar esto con frecuencia. Sería mejor mantener un contador separado que incremente cuando un usuario inicie sesión y disminuya cuando un usuario cierre sesión.