Redis
 sql >> Baza danych >  >> NoSQL >> Redis

policz liczbę sesji w connect-redis

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.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis:Wymagane uwierzytelnianie NOAUTH, ale nie ma ustawienia hasła

  2. Redis:Czy ZADD jest lepszy niż O(logN), gdy wstawiony element znajduje się na początku lub na końcu?

  3. Liczba wygasających kluczy wymienionych przez polecenie info na serwerze redis slave nie jest zgodna z tym, co widzę

  4. Jak utworzyć db (key_space) w redis

  5. Redis + ActionController::Żywe wątki nie umierają