sql >> Base de Datos >  >> NoSQL >> Redis

¿Alternativas a estructuras anidadas en Redis?

Tienes básicamente dos estrategias:

  • puede serializar sus objetos complejos y almacenarlos como cadenas. Sugerimos json o msgpack para el formato de serialización. Esto es bastante fácil de manipular desde la mayoría de los lenguajes del lado del cliente. Si se necesita acceso del lado del servidor, entonces una secuencia de comandos Lua del lado del servidor puede codificar o decodificar fácilmente dichos objetos, ya que Redis está compilado con soporte msgpack y json para Lua.

  • puedes dividir tus objetos en diferentes claves. En lugar de almacenar usuario:id y una estructura de datos compleja para este id, puede almacenar varias claves como usuario:id, usuario:id:lista de direcciones, usuario:id:listas de documentos, etc. Si necesita atomicidad, tubería MULTI/ Los bloques EXEC se pueden usar para garantizar la consistencia de los datos y agregar los viajes de ida y vuelta.

Vea un ejemplo simple en esta respuesta:

¿Funcionará el comando LPUSH en un registro que se inicializó desde JSON?

Finalmente, Redis no es una base de datos orientada a documentos. Si realmente tiene muchos documentos complejos, tal vez le sirvan mejor soluciones como MongoDB, ArangoDB, CouchDB, Couchbase, etc...