tipos - tablas en redis
Novato de Redis: enfoque equivalente a la tabla mysql (2)
Soy nuevo en Redis y esperaba una solución de "mejores prácticas" para implementar el equivalente de una tabla de "usuarios" en una base de datos mysql, para manejar a los usuarios en una aplicación web.
¿Crearía un SET de usuarios en Redis? ¿O una base de datos de usuarios con SET para cada usuario?
Realmente depende de lo que le gustaría hacer con los usuarios dentro de su aplicación. Otra opción sería que cada usuario sea su propio hash, donde las claves son propiedades (campos) para cada usuario (firstName, lastName, etc.). Puede usar una clave que incremente como generador de ID para insertar, y potencialmente otro conjunto que use para contener todos los ID de usuario.
Mi configuración estándar para los usuarios es un objeto serializado en una clave estándar u: ID de usuario : este objeto se recupera en cada solicitud, y nunca hay necesidad de acceder solo a una de las propiedades.
También puede usar un hash en lugar de json para las propiedades del usuario, pero mi configuración incluye todo lo que se usa como objetos fuertemente tipados y redis ejecutándose en un servidor diferente del cliente, por lo que usar json facilita el uso de la deserialización genérica y minimiza cualquier latencia cuestiones.
Además del objeto de usuario en sí, necesitará un índice para cualquier campo que necesite usar para encontrar un usuario; por ejemplo, para permitir que un usuario inicie sesión con la dirección de correo electrónico, necesitará una clave e: email => ID de usuario . Un hash también funcionará aquí; lo importante es que necesita algo que es O (1) para obtener de un correo electrónico a un objeto de usuario.
A veces, algunas partes de los datos del usuario deben tener sus propias claves, por ejemplo, una lista de seguidores es la combinación perfecta para un conjunto de redis, por lo que es mejor almacenarla en esa forma.