Hai fondamentalmente due strategie:
-
puoi serializzare i tuoi oggetti complessi e archiviarli come stringhe. Suggeriamo json o msgpack per il formato di serializzazione. Questo è abbastanza facile da manipolare dalla maggior parte delle lingue lato client. Se è necessario l'accesso lato server, uno script Lua lato server può facilmente codificare/decodificare tali oggetti poiché Redis è compilato con msgpack e supporto json per Lua.
-
puoi dividere i tuoi oggetti in chiavi diverse. Invece di memorizzare user:id e una struttura di dati complessa in questo id, puoi memorizzare diverse chiavi come user:id, user:id:address_list, user:id:document_lists, ecc ... Se hai bisogno di atomicità, pipelining MULTI/ I blocchi EXEC possono essere utilizzati per garantire la coerenza dei dati e aggregare i roundtrip.
Vedi un semplice esempio in questa risposta:
Il comando LPUSH funzionerà su un record che è stato inizializzato da JSON?
Infine, Redis non è un database orientato ai documenti. Se hai davvero molti documenti complessi, forse potresti essere meglio servito da soluzioni come MongoDB, ArangoDB, CouchDB, Couchbase, ecc...