Me preguntaba cuáles eran los beneficios de usar ID de usuario en lugar de simplemente usar el nombre de usuario único para las claves.Nombre de usuario o ID para las claves en Redis
- usuario: NOMBRE DE USUARIO => {contraseña: HASH, edad: 45}
- usuario: 0 => {El nombre de usuario, contraseña: HASH, edad: 45}
en cuenta que yo desearía buscar usuarios por nombre, por lo tanto, requiere un segundo conjunto de pares clave-valor para relacionar los nombres de usuario con los ID.
Dado que cada nombre de usuario es único y tiene que ser alfanumérico, ¿hay alguna razón en particular por la cual puede ser beneficioso usar el sistema de identificación?
La razón principal por la que pregunto esto es porque utilicé principalmente ID, ya que disminuyeron los tiempos de búsqueda en mi base de datos, especialmente cuando la base de datos se normalizó de alguna manera. Pero Redis no obtiene este beneficio, por lo que me pregunté qué otras razones podría haber para usar ID de usuario en lugar de solo los nombres de usuario.
Gracias por cualquier ayuda,
Pluckerpluck
P. S. Debido a la forma en que Redis maneja hashes, en realidad no estoy seguro de las diferencias de memoria entre los dos métodos, así que la información sobre esto puede ser buena, aunque puedo ir y probarlo yo mismo más adelante.
Gracias por señalar ese escenario. Solo una pregunta rápida: si tuviera que usar ID. Entonces necesitaría una relación de usuario ID para permitir buscar nombres de usuario. ¿Crees que un conjunto ordenado (el rango es el id) sería una buena manera de hacerlo? O en su lugar, un hash? – Pluckerpluck
Hash es mejor por dos motivos: a) Utiliza menos memoria que un conjunto ordenado, yb) No existe un orden definido de usuarios, por lo que conceptualmente no tiene sentido utilizar un conjunto ordenado. –
Usaría un hash para indexar nombres de usuario. Son mucho más compactos que zset en la memoria. Usar un zset solo sería útil si tuviera que admitir consultas de rango en nombres ... –