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

MongoDB с redis

Redis и MongoDB могат да се използват заедно с добри резултати. Компания, добре известна с управлението на MongoDB и Redis (заедно с MySQL и Sphinx), е Craiglist. Вижте тази презентация от Джеръми Заводни.

MongoDB е интересен за постоянни, ориентирани към документи, данни, индексирани по различни начини. Redis е по-интересен за летливи данни или чувствителни към забавяне полупостоянни данни.

Ето няколко примера за конкретно използване на Redis върху MongoDB.

  • MongoDB преди 2.2 все още няма механизъм за изтичане. Ограничените колекции наистина не могат да се използват за внедряване на истински TTL. Redis има TTL-базиран механизъм за изтичане, което го прави удобен за съхранение на нестабилни данни. Например, потребителските сесии обикновено се съхраняват в Redis, докато потребителските данни ще се съхраняват и индексират в MongoDB. Имайте предвид, че MongoDB 2.2 въведе механизъм за изтичане с ниска точност на ниво събиране (да се използва за изчистване на данни например).

  • Redis предоставя удобен тип данни за набор и свързаните с него операции (обединение, пресичане, разлика в множество набори и т.н. ...). Доста лесно е да се внедри основно фасетно търсене или машина за маркиране върху тази функция, което е интересно допълнение към по-традиционните възможности за индексиране на MongoDB.

  • Redis поддържа ефективно блокиране на изскачащи операции в списъци. Това може да се използва за внедряване на ad-hoc разпределена система за опашка. Той е по-гъвкав от MongoDB tailable курсори IMO, тъй като бекенд приложение може да слуша няколко опашки с изчакване, да прехвърля елементи в друга опашка атомарно и т.н. ... Ако приложението изисква известно опашка, има смисъл да съхранявате опашката в Redis и съхранявайте постоянните функционални данни в MongoDB.

  • Redis също така предлага механизъм за пъб/суб. В разпределено приложение може да бъде полезна система за разпространение на събития. Това отново е отличен случай на използване на Redis, докато постоянните данни се съхраняват в MongoDB.

Тъй като е много по-лесно да се проектира модел на данни с MongoDB, отколкото с Redis (Redis е по-ниско ниво), интересно е да се възползвате от гъвкавостта на MongoDB за основни постоянни данни и от допълнителните функции, предоставени от Redis (ниска латентност , изтичане на артикула, опашки, pub/sub, атомни блокове и т.н. ...). Това наистина е добра комбинация.

Моля, имайте предвид, че никога не трябва да стартирате Redis и MongoDB сървър на една и съща машина. Паметта MongoDB е проектирана да се разменя, Redis не. Ако MongoDB задейства някаква размяна, производителността на Redis ще бъде катастрофална. Те трябва да бъдат изолирани на различни възли.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да изтегля един екземпляр на елемент в масив в MongoDB?

  2. Заявка Mongoose, където стойността не е нула

  3. Как да направя заявка за агрегиране на Mongo в Spring Data?

  4. Не може да се свърже с mongodb errno:61 Връзката е отказана

  5. как да извика операция за броене след намиране с mongodb java драйвер