Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Alternatywy dla struktur zagnieżdżonych w Redis?

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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak stworzyć model we wzorcu DRY za pomocą flow.js (dla wywołań asynchronicznych) w node.js?

  2. Redis jak przechowywać tablicę asocjacyjną? Ustaw czy hasz czy lista?

  3. Czy mogę używać Tornado+ Celery+ RabbitMQ + Redis?

  4. Jak używać skrótów Redis

  5. Jak przekazywać dane między wieloma stanami Lua (wielowątkowymi)?