Masz zasadniczo dwie strategie:
-
możesz serializować swoje złożone obiekty i przechowywać je jako ciągi. Sugerujemy json lub msgpack dla formatu serializacji. Jest to dość łatwe do manipulowania z większości języków po stronie klienta. Jeśli potrzebny jest dostęp po stronie serwera, skrypt Lua po stronie serwera może łatwo kodować/dekodować takie obiekty, ponieważ Redis jest skompilowany z obsługą msgpack i json dla Lua.
-
możesz podzielić swoje obiekty na różne klucze. Zamiast przechowywać user:id i złożoną strukturę danych w tym identyfikatorze, możesz przechowywać kilka kluczy, takich jak user:id, user:id:address_list, user:id:document_lists, itp. Jeśli potrzebujesz niepodzielności, potoku MULTI/ Bloki EXEC mogą być używane do zagwarantowania spójności danych i agregowania rund.
Zobacz prosty przykład w tej odpowiedzi:
Czy polecenie LPUSH będzie działać na rekordzie, który został zainicjowany z formatu JSON?
Wreszcie, Redis nie jest bazą danych zorientowaną na dokumenty. Jeśli naprawdę masz dużo skomplikowanych dokumentów, być może lepiej obsługiwałyby Cię rozwiązania takie jak MongoDB, ArangoDB, CouchDB, Couchbase itp.