Máte v zásadě dvě strategie:
-
můžete serializovat své složité objekty a ukládat je jako řetězce. Pro formát serializace doporučujeme json nebo msgpack. To je dostatečně snadné na manipulaci z většiny jazyků na straně klienta. Pokud je potřeba přístup na straně serveru, pak skript Lua na straně serveru může takové objekty snadno zakódovat/dekódovat, protože Redis je zkompilován s podporou msgpack a json pro Lua.
-
můžete rozdělit své objekty do různých klíčů. Namísto ukládání user:id a složité datové struktury k tomuto id, můžete uložit několik klíčů, jako je user:id, user:id:address_list, user:id:document_lists, atd... Pokud potřebujete atomicitu, pipeline MULTI/ Bloky EXEC lze použít k zajištění konzistence dat a agregaci zpátečních cest.
Podívejte se na jednoduchý příklad v této odpovědi:
Bude příkaz LPUSH fungovat na záznamu, který byl inicializován z JSON?
A konečně, Redis není databáze orientovaná na dokumenty. Pokud máte opravdu hodně složitých dokumentů, možná by vám lépe posloužila řešení jako MongoDB, ArangoDB, CouchDB, Couchbase atd...