Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

contar o número de sessões no connect-redis


Sim, o connect-redis usa redis.createClient() internamente se você fornecer apenas credenciais como você tem acima. Você também pode passar um cliente diretamente.
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 obter o número de sessões, você deve consultar o redis para o conjunto de chaves que correspondem a esse prefixo de chave. Para connect-redis, isso é "sess:".
redisClient.keys("sess:*", function(error, keys){
    console.log("Number of active sessions: ", keys.length);
});

Como eles afirmam na documentação do redis, o comando keys leva um tempo linear, portanto, em sistemas grandes, não é uma boa ideia consultar isso com frequência. Seria melhor manter um contador separado que você incrementa quando um usuário entra e diminui quando um usuário sai.