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

Коя е най-ефективната ориентирана към документи машина за база данни за съхранение на хиляди документи със среден размер?

Много зависи от конкретния случай на употреба. Ако искате да можете да заявявате документите си за нещо различно от техния идентификатор, тогава не трябва да избирате Redis. С Redis ще трябва да внедрите своя собствена схема за индексиране, а това е просто ненужно.

Всъщност има много малко случаи, в които Redis би бил по-добър вариант за това, което според мен е вашият случай на използване (не че има нещо нередно с Redis, често използвам както Redis, така и Mongo, но за различни неща). Звучи ми, сякаш имате обекти, които могат да бъдат представени като хешове. И Mongo, и Redis могат да съхраняват хешове, но Mongo може да направи много повече. С Mongo можете да търсите документ във всяко от неговите полета, можете да добавите индекс, за да го ускорите, и полето дори не трябва да е низ, може да бъде число, дата, списък, дори документ (или списък с документи) и не е необходимо всички документи да се побират в RAM (въпреки че това ще се промени, когато функцията за дисково хранилище на Redis приключи). Redis няма нищо от това. Ще трябва сами да внедрите индекси, за да можете да търсите, не можете да съхранявате нищо освен низове (което понякога е наистина неудобно) и не можете да съхранявате нищо освен плоски хешове (без да прибягвате до внедряване или използване на някакво съпоставяне слой като Ohm).

Споменаваш и скоростта. Redis е невероятно бърз и Mongo също не е лош, но за вашия случай на използване използването на Mongo може да е по-бързо. Забележете, че казвам използване Монго, не че самото Монго би било по-бързо. Работата е там, че ако използвате Redis и все пак искате да можете да търсите документ, използвайки поле, което не е първичен ключ, вие, както споменах по-горе, ще трябва да приложите това сами. След това търсенето ще трябва да направи поне две заявки към Redis, една за търсене в индекса и една за получаване на документа. Ако търсенето доведе до повече от един документ, ще трябва да направите заявка за всеки документ поотделно. Режийните разходи за извършване на всички тези заявки вероятно биха направили използването на Redis по-лошо от използването на Mongo. Според моя опит всичко различно от най-простия кеш, опашка или подобно трябва да направи повече от една заявка към Redis, за да получи всичко необходимо.

И така, с ограничената информация, с която разполагам, препоръчвам MongoDB.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. използване на карта за кеширане на около 5000 записа в Javascript приложение VS Redis

  2. Свържете се с redis от друг контейнер в docker

  3. Как да запазя has_many :through връзки при сериализиране в JSON и обратно в Rails 4.0.3?

  4. Транзакционно създаване с валидиране в ServiceStack Redis Client

  5. Опция Redis-cli --csv (експортиране в csv)