Redis
 sql >> Database >  >> NoSQL >> Redis

Alternative alle strutture nidificate in Redis?

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