MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Redis kontra MongoDB

1. Przegląd

Często jest nam trudno zdecydować się na nierelacyjną bazę danych jako podstawowy magazyn danych dla naszych aplikacji.

W tym artykule omówimy dwie popularne nierelacyjne bazy danych, Redis i MongoDB.

Najpierw przyjrzymy się funkcjom oferowanym przez Redis i MongoDB. Następnie omówimy, kiedy używać Redis lub MongoDB, porównując je ze sobą.

2. Redis

Redis to magazyn struktury danych w pamięci, który oferuje bogaty zestaw funkcji. Jest przydatny jako pamięć podręczna, broker wiadomości i kolejka .

2.1. Funkcje

  • Dedykowany interfejs wiersza poleceń – redis-cli
  • Przechowuje pary klucz-wartość i obsługuje struktury danych, takie jak lista, zestaw i hash
  • Może przechowywać wartości do 512 MB w rozmiarze
  • Pozwala na publikowanie i subskrybowanie wiadomości za pomocą kolejek wiadomości pub/sub
  • Wsparcie geoprzestrzenne poprzez zapewnienie specjalnych poleceń do zarządzania danymi geoprzestrzennymi w czasie rzeczywistym
  • Pozwala na wykonywanie skryptów LUA
  • Oferuje różnych klientów dla popularnych technologii
  • Obsługuje IoT i urządzenia wbudowane
  • Obsługa danych wiosennych
  • Obsługa Spring Cache przy użyciu klientów Java, takich jak Redisson

2.2. Instalacja

Możemy pobrać najnowszy serwer Redis z oficjalnej strony internetowej i zainstalować go:

$ wget http://download.redis.io/releases/redis-6.0.9.tar.gz
$ tar xzf redis-6.0.9.tar.gz
$ cd redis-6.0.9
$ make

3. MongoDB

MongoDB to baza danych dokumentów NoSQL, która przechowuje informacje w strukturze dokumentów podobnej do JSON. Przydaje się jako bezschematowy magazyn danych do szybko zmieniających się aplikacji, prototypowania i uruchamiania w fazie projektowania i wdrażania .

3.1. Funkcje

  • Oferuje interaktywny interfejs wiersza poleceń MongoDB Shell (mongosh ) do wykonywania operacji administracyjnych i zapytania/aktualizacji danych
  • Struktura zapytań oparta na JSON z obsługą złączeń
  • Obsługuje różne typy wyszukiwań, takie jak wyszukiwanie geograficzne, wyszukiwanie wykresów i wyszukiwanie tekstowe
  • Obsługuje wielodokumentowe transakcje ACID
  • Obsługa danych wiosennych
  • Dostępne w wersjach społecznościowych, korporacyjnych i chmurowych (MongoDB Atlas)
  • Różne sterowniki dla głównych technologii, takich jak C++, Java, Go, Python, Rust i Scala
  • Zapewnia GUI do eksploracji i manipulowania danymi za pomocą kompasu MongoDB
  • Oferuje wizualną reprezentację danych za pomocą wykresów MongoDB
  • MongoDB BI Connector zapewnia połączenia z platformami BI i analitycznymi

3.2. Instalacja

Możemy pobrać najnowszy serwer MongoDB lub, jeśli używasz macOS, możemy zainstalować edycję społecznościową bezpośrednio za pomocą Homebrew:

brew tap mongodb/brew
brew install [email protected]

4. Kiedy używać Redisa?

4.1. Buforowanie

Redis zapewnia najlepszą w swojej klasie wydajność pamięci podręcznej, zapewniając mniej niż milisekundę czasu odpowiedzi w przypadku często żądanych elementów .

Ponadto umożliwia ustawienie czasu wygaśnięcia klawiszy za pomocą poleceń takich jak EXPIRE , WYGAŚNIĘCIE i PEXPIRE .

Jednocześnie możemy użyć PERSIST polecenie, aby usunąć limit czasu i zachować parę klucz-wartość, dzięki czemu idealnie nadaje się do buforowania.

4.2. Elastyczne przechowywanie danych

Redis zapewnia różne struktury danych, takie jak ciąg, lista, zestaw i hash, aby decydować o sposobie przechowywania i organizowania naszych danych. Dlatego Redis daje nam pełną swobodę w implementacji struktur baz danych.

Jednak może również zająć dużo czasu, aby przemyśleć projekt DB. Podobnie trudne może być zbudowanie i utrzymanie wewnętrznej struktury schematu za pomocą Redis.

4.3. Złożone przechowywanie danych

Podobnie, łącząc listę, zestaw i hash, możemy zaimplementować złożone struktury danych, takie jak kolejki, tablice, posortowane zestawy i wykresy dla naszego przechowywania.

4.4. Broker czatu, kolejki i wiadomości

Redis może publikować i subskrybować wiadomości za pomocą kolejek wiadomości pub/sub z dopasowaniem do wzorca . W ten sposób Redis może obsługiwać czaty w czasie rzeczywistym i aplikacje do obsługi mediów społecznościowych.

Podobnie możemy zaimplementować lekką kolejkę przy użyciu struktury danych listy . Ponadto lista Redis obsługuje operacje atomowe i oferuje możliwości blokowania, dzięki czemu nadaje się do zaimplementowania brokera komunikatów.

4.5. Sklep sesji

Redis zapewnia magazyn danych w pamięci z funkcjami trwałości, dzięki czemu jest dobrym kandydatem do przechowywania sesji i zarządzania nimi dla aplikacji internetowych/mobilnych.

4.6. IoT i systemy wbudowane

Zgodnie z oficjalną dokumentacją Redis, nowsze wersje, począwszy od 4 i 5, obsługują procesor ARM i Raspberry Pi .

Działa również na Androidzie i podejmowane są wysiłki, aby włączyć Androida jako oficjalnie obsługiwaną platformę.

Tak więc Redis wygląda idealnie dla IoT i systemów wbudowanych, korzystając z jego mały rozmiar pamięci i niskie wymagania dotyczące procesora.

4.7. Przetwarzanie w czasie rzeczywistym

Będąc niesamowicie szybką strukturą danych w pamięci, możemy jej używać do aplikacji przetwarzających w czasie rzeczywistym.

Na przykład Redis może wydajnie obsługiwać aplikacje oferujące funkcje, takie jak alerty cen akcji, tabele wyników i analizy w czasie rzeczywistym.

4.8. Aplikacje geoprzestrzenne

Redis oferuje specjalnie wbudowaną strukturę danych w pamięci Geo Set — zbudowaną na posortowanym zestawie — do zarządzania indeksami geoprzestrzennymi. Zapewnia również określone polecenia geograficzne, takie jak GEOADD , GEOPOS i GEORADIUS do dodawania, odczytywania i analizowania danych geoprzestrzennych.

Dlatego możemy tworzyć aplikacje geoprzestrzenne w czasie rzeczywistym z funkcjami opartymi na lokalizacji, takimi jak czas jazdy i odległość, za pomocą Redis .

5. Kiedy używać MongoDB?

5.1. Zapytania dynamiczne

MongoDB oferuje potężny zestaw narzędzi zapytań. Ponadto zapewnia szeroką gamę elastycznych schematów zapytań, takich jak wyszukiwanie geograficzne, wyszukiwanie wykresów i wyszukiwanie tekstowe w celu wydajnego wyszukiwania danych.

Jednocześnie, dzięki obsłudze zapytań o strukturze JSON, MongoDB wydaje się być lepszym wyborem w scenariuszach, w których wyszukiwanie i analiza danych są codziennymi czynnościami.

5.2. Szybko zmieniający się schemat

MongoDB może być pomocny w fazie projektowania i wczesnych etapów wdrażania, gdzie wymagamy szybkich zmian w naszym schemacie. Jednocześnie nie przyjmuje założeń na podstawie danych źródłowych i optymalizuje się bez konieczności tworzenia schematu.

5.3. Prototypowanie i hackathony

Przestrzegając struktury dokumentu podobnej do JSON, MongoDB umożliwia szybkie prototypowanie, szybką integrację z kanałami frontonu i hackathonami .

Jednocześnie może być przydatny dla młodszych zespołów, które nie chcą zajmować się złożonością RDBMS.

5.4. Katalogi

Dostarczając dynamiczny schemat, który sam się opisuje, MongoDB ułatwia dodawanie produktów, funkcji i rekomendacji dla katalogów, takich jak e-commerce, zarządzanie zasobami i inwentarz.

Możemy również używać ekspresyjnych zapytań w MongoDB dla funkcji takich jak zaawansowane wyszukiwanie i analityka poprzez indeksowanie pola lub zestawu pól dokumentu o strukturze JSON.

5.5. Aplikacje mobilne

Struktura dokumentów JSON MongoDB umożliwia przechowywanie różnych typów danych z różnych urządzeń wraz z indeksami geoprzestrzennymi.

Poza tym skalowalność pozioma z natywnym shardingiem umożliwia łatwe skalowanie aplikacji mobilnej. Dlatego MongoDB może obsługiwać mnóstwo użytkowników, przetwarzać petabajty danych i obsługiwać setki tysięcy operacji na sekundę, co czyni go godnym wyborem do tworzenia kopii zapasowych aplikacji mobilnych.

5.6. Aplikacje bogate w treść

Nie jest łatwo włączać różne treści do RDBMS dla nowoczesnych aplikacji bogatych w treść. Z drugiej strony MongoDB umożliwia przechowywanie i udostępnianie bogatej zawartości, takiej jak tekst, dźwięk i wideo .

Ponadto możemy z łatwością przechowywać pliki większe niż 16 MB przy użyciu MongoDB GridFS . Umożliwia dostęp do części dużych plików bez ładowania całego pliku do pamięci.

Dodatkowo automatycznie synchronizuje nasze pliki i metadane na wszystkich serwerach. W rezultacie MongoDB wydaje się być bardziej odpowiednim wyborem do obsługi aplikacji bogatych w treści.

5.7. Aplikacje do gier

Podobnie jak w przypadku aplikacji mobilnych i bogatych w treści, gry również wymagają ogromnego skalowania i dynamicznych struktur danych. Dlatego MongoDB może być obiecującym wyborem dla aplikacji do gier.

5.8. Globalna usługa bazy danych w chmurze

MongoDB Atlas jest dostępny w wielu usługach w chmurze, takich jak AWS, Google Cloud i Azure . Ponadto dzięki wbudowanemu mechanizmowi replikacji i przełączania awaryjnego oferuje wysoce dostępny system rozproszony. Dlatego możemy szybko wdrożyć bazę danych i zarządzać nią oraz używać jej jako globalnej usługi bazy danych w chmurze.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Obserwujący - projekt bazy danych mongodb

  2. Jak mogę udostępniać kolekcje MongoDB między aplikacjami Meteor?

  3. Odinstaluj mongoDB z ubuntu

  4. Integracja ClusterControl z SNMP:część druga

  5. mongoDB:format $dateToString do wyświetlania czasu w odstępie 15 minut