sql >> Databáze >  >> NoSQL >> Redis

Alternativy k vnořeným strukturám v Redis?

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...



  1. MongoDB jako úložiště souborů

  2. Celer error:result.get timeout

  3. redis vs hazelcast

  4. Nodejs Mongo vložit do vnořeného dokumentu - dynamický název pole