Dados essenciaisWeb e mobile

Gerenciamento de sessões

Armazene sessões com expiração automática e encontre ou revogue sessões por usuário, função ou dispositivo sem construir um índice.

consulta para achar as sessões de um usuário
1
índices secundários
0
expiração, tags incluídas
Automática
Etapa 1 de 5
Entre em três dispositivos

Cada dispositivo recebe a própria sessão, com expiração de 30 minutos.

Sessão de exemploplaying
# Entre em três dispositivos
hotkv> SET session:9f2c "{\"user\":42}" EX 1800
OK

Uma demonstração animada com comandos reais do HotKV e respostas de exemplo. Clique em qualquer etapa para ir direto a ela. Os comandos e as respostas ficam em inglês, exatamente como você os digita e vê no HotKV.

O problema

As sessões são pequenas, muito acessadas e de vida curta, o que combina com um armazenamento em memória. A parte difícil vem depois, quando o suporte precisa desconectar um usuário de todos os lugares, ou a segurança precisa encerrar todas as sessões de uma função ou de um dispositivo. Um armazenamento chave-valor simples só consegue encontrar uma sessão pelo id.

Como o HotKV resolve

O HotKV armazena cada sessão como uma chave com expiração e permite marcá-la com o usuário, a função ou o dispositivo a que ela pertence. As tags fazem parte do motor e somem junto com a chave, então você pode listar ou revogar todas as sessões correspondentes com uma consulta, em vez de manter um conjunto paralelo de chaves.

Passo a passo

O que acontece, comando por comando

  1. 01

    Entre em três dispositivos

    Cada dispositivo recebe a própria sessão, com expiração de 30 minutos.

    SET session:9f2c "{\"user\":42}" EX 1800
  2. 02

    Marque cada sessão

    Usuário, função e dispositivo são anexados logo depois que a sessão é criada.

    TAG.SET session:9f2c user:42 role:admin device:ios
  3. 03

    Continue conectado enquanto ativo

    Cada requisição renova a expiração, o que dá um timeout deslizante.

    EXPIRE session:9f2c 1800
  4. 04

    Encontre todas as sessões do usuário 42

    Um notebook roubado é informado. Uma consulta retorna todas as sessões do usuário.

    TAG.MEMBERS user:42
  5. 05

    Saia de todos os lugares

    Apague as chaves que voltaram. As tags vão junto, e todos os dispositivos são desconectados.

    DEL session:9f2c session:71aa session:0c8e
Onde se encaixa

Cenários reais

Apps bancários e de fintech

As equipes de segurança encerram todas as sessões de uma conta comprometida, ou de todos os dispositivos em uma versão desatualizada do app, com uma ação.

Produtos SaaS

Quando a função de um admin é removida, todas as sessões marcadas com essa função são revogadas de uma vez.

Serviços de streaming

Conte e limite as sessões simultâneas por conta a partir da resposta de TAG.MEMBERS para a tag do usuário.

Integrado

O que você ganha

Expiração automática

As sessões desaparecem sozinhas quando o TTL acaba, e as tags vão junto.

EXEXPIRE

Consulta sem índice

Encontre sessões por qualquer tag, ou por várias tags ao mesmo tempo.

TAG.MEMBERSTAG.INTER

Verificação rápida de tags

TAG.COUNT e TAG.EXISTS dizem o que uma chave carrega.

TAG.COUNTTAG.EXISTS

Rápido em picos de login

As leituras e escritas de sessões rodam em threads paralelas.

Perguntas frequentes

Como desconecto um usuário de apenas um dispositivo?

Use TAG.INTER com a tag do usuário e a tag do dispositivo, depois apague as chaves que ele retornar.

O que acontece com uma tag quando a sessão expira?

As tags de uma chave vão embora junto com ela, inclusive na expiração. As tags não fazem parte dos snapshots, então aplique-as de novo se o servidor reiniciar a partir de um snapshot.

Posso limitar as sessões simultâneas por conta?

Sim. TAG.MEMBERS na tag do usuário lista as sessões, então você pode contá-las e recusar o login ou encerrar a mais antiga.

Casos de uso relacionados

Experimente com a sua própria carga de trabalho

O HotKV fala o protocolo Redis, então você pode apontar um cliente existente para ele e executar estes mesmos comandos.