tablas relacionadas relacion obtener muchos hasmany espaƱol datos consultas belongsto json redis key-value-store

json - relacionadas - relacion muchos a muchos laravel



Almacenar propiedades de objetos en redis (3)

Digamos que tengo un objeto (Usuario) que consta de algunas propiedades (ID, Nombre, Nombre de seguridad, Edad). ¿Cuál es la mejor manera de almacenar este objeto en redis?

  • almacenar cada valor de propiedad en una clave dedicada, por ejemplo usuario: {id}: id, usuario: {id}: nombre, usuario: {id}: surename, usuario: {id}: edad
  • almacenar el objeto Usuario completo como cadena JSON en una clave, por ejemplo usuario: {id}: json (el valor de la clave será algo como esto: {"ID": 123, "Nombre": "Johny", "Surename"): "Bravo", "Edad": 22})

De acuerdo con estas dos fuentes, probablemente la solución óptima sería usar hashes debido al consumo de memoria cuando se usan claves dedicadas y cadena larga en el escenario con JSON como valor clave.


Del oficial Redis

Usar hashes cuando sea posible

Los pequeños hashes están codificados en un espacio muy pequeño

Cuando no tienes demasiados campos en él.

Cada vez que un hash excederá el número de elementos o el tamaño del elemento especificado, se convertirá en una tabla hash real y se perderá el ahorro de memoria.


De mis pruebas usando hash toma mucho espacio más pequeño, pero esa es la única razón. Si tiene muchos datos, considere usar hash. De lo contrario, también podría usar JSON ya que es fácil serializarlo y deserializarlo en objetos si así lo desea y en general.