Datos básicosWeb y móvil

Gestión de sesiones

Guarda sesiones con caducidad automática y encuéntralas o revócalas por usuario, rol o dispositivo sin construir un índice.

búsqueda para encontrar las sesiones de un usuario
1
índices secundarios
0
caducidad, etiquetas incluidas
Automática
Paso 1 de 5
Inicia sesión en tres dispositivos

Cada dispositivo recibe su propia sesión con una caducidad de 30 minutos.

Sesión de ejemploplaying
# Inicia sesión en tres dispositivos
hotkv> SET session:9f2c "{\"user\":42}" EX 1800
OK

Un recorrido animado con comandos reales de HotKV y respuestas de ejemplo. Haz clic en cualquier paso para saltar a él. Los comandos y las respuestas se quedan en inglés, tal como los escribes y los ves en HotKV.

El problema

Las sesiones son pequeñas, muy consultadas y de vida corta, lo que encaja con un almacén en memoria. Lo difícil llega después, cuando soporte necesita cerrar la sesión de un usuario en todas partes, o seguridad necesita terminar todas las sesiones de un rol o de un dispositivo. Un almacén clave-valor simple solo puede buscar una sesión por su id.

Cómo lo resuelve HotKV

HotKV guarda cada sesión como una clave con caducidad y te permite etiquetarla con el usuario, el rol o el dispositivo al que pertenece. Las etiquetas forman parte del motor y desaparecen con la clave, así que puedes listar o revocar todas las sesiones que coinciden con una sola búsqueda en lugar de mantener un conjunto paralelo de claves.

Paso a paso

Qué ocurre, comando a comando

  1. 01

    Inicia sesión en tres dispositivos

    Cada dispositivo recibe su propia sesión con una caducidad de 30 minutos.

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

    Etiqueta cada sesión

    El usuario, el rol y el dispositivo se añaden justo después de crear la sesión.

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

    Sesión abierta mientras hay actividad

    Cada solicitud renueva la caducidad, lo que da un tiempo de espera deslizante.

    EXPIRE session:9f2c 1800
  4. 04

    Encuentra todas las sesiones del usuario 42

    Se denuncia el robo de un portátil. Una búsqueda devuelve todas las sesiones del usuario.

    TAG.MEMBERS user:42
  5. 05

    Cierra la sesión en todas partes

    Borra las claves devueltas. Sus etiquetas se van con ellas, y todos los dispositivos quedan desconectados.

    DEL session:9f2c session:71aa session:0c8e
Dónde encaja

Escenarios reales

Apps de banca y fintech

Los equipos de seguridad terminan todas las sesiones de una cuenta comprometida, o de todos los dispositivos con una versión antigua de la app, en una sola acción.

Productos SaaS

Cuando se retira el rol de un administrador, se revocan a la vez todas las sesiones etiquetadas con ese rol.

Servicios de streaming

Cuenta y limita las sesiones simultáneas por cuenta a partir de la respuesta de TAG.MEMBERS para la etiqueta del usuario.

Integrado

Qué obtienes

Caducidad automática

Las sesiones desaparecen solas cuando se agota el TTL, y sus etiquetas se van con ellas.

EXEXPIRE

Búsqueda sin índice

Encuentra sesiones por cualquier etiqueta, o por varias etiquetas a la vez.

TAG.MEMBERSTAG.INTER

Comprobación rápida de etiquetas

TAG.COUNT y TAG.EXISTS te dicen qué lleva una clave.

TAG.COUNTTAG.EXISTS

Rápido ante avalanchas de inicios de sesión

Las lecturas y escrituras de sesiones se ejecutan en hilos paralelos.

Preguntas frecuentes

¿Cómo cierro la sesión de un usuario en un solo dispositivo?

Usa TAG.INTER con la etiqueta del usuario y la del dispositivo, y luego borra las claves que devuelve.

¿Qué pasa con una etiqueta cuando caduca su sesión?

Las etiquetas de una clave se van con la clave, también al caducar. Las etiquetas no forman parte de los snapshots, así que vuelve a aplicarlas si el servidor se reinicia desde un snapshot.

¿Puedo limitar las sesiones simultáneas por cuenta?

Sí. TAG.MEMBERS sobre la etiqueta del usuario lista las sesiones, así puedes contarlas y rechazar el inicio de sesión o terminar la más antigua.

Casos de uso relacionados

Pruébalo con tu propia carga de trabajo

HotKV habla el protocolo de Redis, así que puedes apuntar un cliente que ya usas hacia él y ejecutar estos mismos comandos.