Dlaczego Redis jest lepszy od Memcached?

Co to jest Redis ?

Redis jest to magazyn struktur danych w pamięci. Jest on używany jako baza danych, pamięć podręczna. Obsługuje struktury danych takie jak ciągi znaków, listy, zestawy, bitmapy, hiperloglogi, indeksy geoprzestrzenne. Ma wbudowaną replikację, obsługuje skrypty Lua, zapewnia wysoką dostępność dzięki Redis Sentinel i automatyczne partycjonowanie za pomocą Redis Cluster.

Aby osiągnąć dużą wydajność Redis działa z zestawem danych w pamięci. W zależności od tego jak użyjemy mamy możliwość co jakiś czas utrwalenia bądź zrzucenia danych na dysk. Trwałość można wyłączyć jeśli będziemy potrzebowali tylko bogatej w funkcje sieciowej pamięci podręcznej.

Redis mapuje klucze typów wartości. Ważną różnicą między Redis a innymi strukturalnymi systemami pamięci masowej jest to, że obsługuje nie tylko łańcuchy ale także abstrakcyjne typy danych takie jak:

  • zestawy string
  • posortowane zestawy string
  • hyperloglog
  • hash tabele
  • dane geoprzestrzenne

Trwałość – domyślnie dane zapisywane są w systemie plików co najmniej co 2 sekundy, w razie potrzeby dostępnych jest więcej opcji. W przypadku całkowitej awarii systemu przy domyślnych ustawieniach utracono by tylko dane z ostatnich kilku sekund.

Wydajność – Gdy trwałość danych nie jest potrzebna Redis umożliwia działanie w porównaniu z systemami baz danych. Działa jako pojedynczy proces i jest jedno lub dwu wątkowy, gdy przepisuje AOF.

Klastrowanie – Specyfikacja klastra implementuje podzbiór poleceń Redis – dostępne są wszystkie polecenia z jednym kluczem, operacje z wieloma kluczami są ograniczone do kluczy należących do tego samego węzła a polecenia związane z operacjami wyboru bazy danych są niedostępne. Klaster Redis jest w stanie skalować do 1000 węzłów przy czym osiąga akceptowalne bezpieczeństwo zapisu.

Redis i Memcached

Redis i Memcached są to silniki pamięci podręcznej. Oferują one wysoką wydajność, mają wiele podobieństw ale mają też istotne różnice. Memcached został zaprojektowany z myślą o prostocie, a redis oferuje bogaty zestaw funkcji, które sprawiają, że jest on skuteczny w szerokim zakresie zastosowań. Redis jest nowszy oraz bardziej wszechstronny i jest prawie zawsze najlepszym wyborem.

Poniżej przedstawiamy kilka różnic:

  • Wykorzystanie pamięci – w redis ustawienie maksymalnego rozmiaru zależy od użytkownika, nie zużyje on więcej niż musi a pamięć, która przestaje już być używana zostanie zwolniona co w przypadku memcached jest możliwe tylko w przypadku ponownego uruchomienia memcached.
  • Zrzut pamięci dysku – redis robi to domyślnie i jest w tym zakresie bardzo konfigurowalny za to memcached potrzebuje do tego dodatkowych narzędzi.
  • Wydajność – często jest zależna od obciążenia i porównywalna pomiędzy redis i memcached ale istnieją obciążenia których memcached nie potrafi wykonać za to redis je wykona.
  • Skalowanie – redis zawiera narzędzia dzięki którym możemy uzyskać więcej, to czego nie ma w memcached.
  • Pary klucz/wartość – memcached może przechowywać pary klucz/wartość gdzie wartość jest ograniczona do ciągu 1MB za to w redis mogą nawet wynosić do 512 MB
  • Trwałość danych – domyślnie redis dane utrwala za pomocą mechanizmu zwanego migawką. Istnieje wiele opcji konfiguracyjnych, które umożliwiają precyzyjne dostrojenie trwałości.
  • Wiele typów danych – memcached ma ograniczenia łańcuchów. Redis jest serwerem struktury danych, który może obsługiwać wiele różnych typów danych.
  • Potokowanie – redis może buforować kilka poleceń i wykonywać je jednocześnie. Pozwala to na osiągnięcie jeszcze większej przepustowości w przypadku importu zbiorczego lub innych działań, które wymagają wielu poleceń.

Redis posiada dużo więcej funkcjonalności i robi wszystko to co memcached lepiej. Przewaga redis widoczna jest praktycznie w każdym aspekcie dzięki nim uzyskujemy dużą moc oraz większą wydajność.

Przetestuj za darmo hosting z Redis

każdy pakiet Premium-litespeed ma własny dedykowany dla siebie serwer Redis

testuj za darmo przez 14 dni. W razie potrzeby migrację danych zrobimy bezpłatnie.

Inne artykuły o Litespeed i Redis:
Czy Litespeed jest szybszy od Apache?
LiteSpeed czy Apache, co wybrać dla swojej strony?
Jak aktywować Redisa na serwerze Smarthost?

Adrian