Du har grundlæggende to strategier:
-
du kan serialisere dine komplekse objekter og gemme dem som strenge. Vi foreslår json eller msgpack til serialiseringsformatet. Dette er let nok at manipulere fra de fleste sprog på klientsiden. Hvis der er behov for adgang på serversiden, kan et Lua-script på serversiden nemt kode/afkode sådanne objekter, da Redis er kompileret med msgpack og json-understøttelse for Lua.
-
du kan opdele dine objekter i forskellige nøgler. I stedet for at gemme bruger:id og en kompleks datastruktur til dette id, kan du gemme flere nøgler såsom bruger:id, bruger:id:adresseliste, bruger:id:dokumentlister osv... Hvis du har brug for atomicitet, pipelining MULTI/ EXEC-blokke kan bruges til at garantere datakonsistensen og samle rundrejserne.
Se et simpelt eksempel i dette svar:
Vil LPUSH-kommandoen fungere på en post, der blev initialiseret fra JSON?
Endelig er Redis ikke en dokumentorienteret database. Hvis du virkelig har mange komplekse dokumenter, kunne du måske være bedre tjent med løsninger som MongoDB, ArangoDB, CouchDB, Couchbase osv ...