Pergunta

Recentemente, encontrei uma boa postagem no blog apresentando duas abordagens para rastrear usuários on -line de um site com a ajuda da Redis.

1) Keys inteligentes e definindo sua expiraçãohttp://techno-weenie.net/2010/2/3/where-swaldo-track-user-locations-with-node-js-and-redis

2) Conjuntos e cruzamentoshttp://www.lukemelia.com/blog/archives/2010/01/17/redis-in-practice-whos-online/

Você pode julgar qual deve ser mais rápido e por quê?

Foi útil?

Solução

Para saber se um usuário específico está online ou não, o primeiro método será muito mais rápido - nada é mais rápido do que ler uma única chave.

Encontrar usuários em uma página específica não é tão clara (não vi números difíceis no desempenho das teclas de cruzamento ou curinga), mas se o conjunto for grande o suficiente para causar problemas de desempenho em qualquer implementação, não é prático exibir todos eles de qualquer maneira.

Para combinar usuários com uma lista de amigos, eu provavelmente iria com a primeira abordagem também - mesmo algumas centenas de operações (verificar o status de todos na lista) devem superar o cruzamento em vários conjuntos se esses conjuntos tiverem um grande número de registros e forem difícil de manter.

Os conjuntos de redis são mais apropriados para coisas que não podem ser feitas com as teclas, principalmente onde todos os itens no conjunto são mais importantes do que verificar se um item específico estiver no conjunto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top