Redis
 sql >> база данни >  >> NoSQL >> Redis

Алтернативи на вложени структури в Redis?

Имате основно две стратегии:

  • можете да сериализирате вашите сложни обекти и да ги съхранявате като низове. Ние предлагаме json или msgpack за формат за сериализация. Това е достатъчно лесно за манипулиране от повечето езици от страна на клиента. Ако е необходим достъп от страна на сървъра, тогава Lua скрипт от страна на сървъра може лесно да кодира/декодира такива обекти, тъй като Redis е компилиран с поддръжка на msgpack и json за Lua.

  • можете да разделите вашите обекти в различни ключове. Вместо да съхранявате user:id и сложна структура от данни към този идентификатор, можете да съхранявате няколко ключа като user:id, user:id:address_list, user:id:document_lists и т.н. ... Ако имате нужда от атомарност, конвейериране MULTI/ EXEC блоковете могат да се използват за гарантиране на последователността на данните и за обобщаване на двупосочните пътувания.

Вижте прост пример в този отговор:

Ще работи ли командата LPUSH върху запис, който е инициализиран от JSON?

И накрая, Redis не е документно ориентирана база данни. Ако наистина имате много сложни документи, може би бихте могли да бъдете по-добре обслужени от решения като MongoDB, ArangoDB, CouchDB, Couchbase и т.н. ...



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Изисквания за пространство на структурата на данните Redis

  2. Как мога да извадя обекти от Redis, когато се добавят в реално време?

  3. Публикуване на абониране с nodejs и redis(node_redis)

  4. Използване на Redis Sets

  5. Как да дефинирам TTL за redis потоци?