Redis
 sql >> база данни >  >> NoSQL >> Redis

пребройте броя на сесиите в connect-redis

Да, connect-redis използва redis.createClient() вътрешно, ако му предоставите само идентификационни данни, каквито имате по-горе. Можете също да го предадете директно на клиент.

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

За да получите броя на сесиите, ще искате да потърсите в redis набор от ключове, съответстващи на този ключов префикс. За connect-redis това е "sess:".

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

Както се посочва в документацията на redis, командата keys отнема линейно време, така че в големите системи не е добра идея да се прави често запитване. По-добре е да запазите отделен брояч, който увеличавате, когато потребител влиза, и намалявате, когато потребител излиза.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Работите с два отделни екземпляра на redis със sidekiq?

  2. Трябва ли да създам нов Redis клиент за всяка връзка?

  3. Извадете атомно множество стойности от структурата на данните на Redis?

  4. Как да се обадя на BGSAVE от BookSleeve?

  5. Redis не се стартира като услуга на Windows на Windows7