Tak, connect-redis używa wewnętrznie redis.createClient(), jeśli podasz mu tylko dane uwierzytelniające, takie jak powyżej. Możesz również przekazać go bezpośrednio klientowi.
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'
}));
Aby uzyskać liczbę sesji, które chcesz wykonać zapytanie redis dla zestawu kluczy pasujących do tego prefiksu klucza. W przypadku connect-redis jest to „sess:”.
redisClient.keys("sess:*", function(error, keys){
console.log("Number of active sessions: ", keys.length);
});
Jak stwierdzają w dokumentacji redis, polecenie keys zajmuje czas liniowy, więc w dużych systemach nie jest dobrym pomysłem częste zapytania o to. Lepiej byłoby zachować oddzielny licznik, który zwiększasz, gdy użytkownik się loguje, a zmniejszasz, gdy użytkownik się wylogowuje.