Przez ostatnie tygodnie sporo pracowałem z memcached i właśnie dowiedziałem się o Redis. Kiedy przeczytałem tę część ich pliku readme, nagle poczułem ciepło i przytulnie w żołądku:
Redis może być używany jako memcached na sterydach, ponieważ jest tak szybki jak memcached, ale ma wiele innych funkcji. Podobnie jak memcached, Redis obsługuje również ustawianie limitów czasu dla kluczy, dzięki czemu ten klucz zostanie automatycznie usunięty po upływie określonego czasu.
Brzmi niesamowicie. Znalazłem również tę stronę z testami porównawczymi: http://www.ruturaj.net/redis-memcached-tokyo-tyrant-mysql-comparison
Więc szczerze - czy memcache to naprawdę ten stary dinousaur, który jest złym wyborem z punktu widzenia wydajności w porównaniu do tego nowicjusza o imieniu Redis?
Wcześniej nie słyszałem wiele o Redis, a więc podejście do mojego pytania!
źródło
Odpowiedzi:
Memcache to wciąż doskonałe narzędzie i BARDZO niezawodny.
zamiast patrzeć na ten problem z perspektywy, która jest szybsza w zakresie <100 ms, spójrz na wydajność dla „klasy” oprogramowania.
źródło
Zależy od tego, czego potrzebujesz, ogólnie myślę, że:
Bez przypadku użycia trudno jest teraz wybrać właściwy, ale myślę, że w wielu przypadkach Redis ma sens, ponieważ nawet jeśli nie chcesz używać go jako bazy danych, będąc o wiele bardziej zdolnym, możesz rozwiązać więcej problemów, nie tylko buforowanie, ale nawet wiadomości, ranking itd.
Ps oczywiście mogłem być stronniczy, ponieważ jestem głównym programistą projektu Redis.
źródło
Redis
ma wtedy znacznie większą funkcjonalność;Redis
jest również znacznie łatwiejsze. Nie są wymagane zależności;Redis
Lepsze jest także porównywanie aktywnego rozwoju ;memcached
jest trochę szybszy niżRedis
. W ogóle nie dotyka dysku;Redis
to lepszy produkt niżmemcached
.źródło
To, co zapamiętał, czego nie robi Redis, to ostatnio używana eksmisja wartości z pamięci podręcznej. Dzięki memcached możesz bezpiecznie ustawić tyle wartości, ile chcesz, a kiedy przepełnią pamięć, te, których ostatnio nie używałeś, zostaną usunięte. Dzięki Redis możesz to tylko przybliżyć, ustawiając limit czasu na wszystko; kiedy musi zwolnić pamięć, zajrzy do trzech losowych kluczy i usunie ten, który jest najbliższy wygaśnięciu.
To główna różnica, jeśli używasz go tylko jako pamięci podręcznej.
źródło
Możesz także zajrzeć na Membase.
http://www.northscale.com/products/membase_server.html
Nie korzystałem z niego, ale wydaje się być podobny do Redisa, ponieważ jest to skoncentrowany na pamięci sklep KV z trwałością. Główne różnice w stosunku do tego, co widzę, to:
Redis ma pojedynczą warstwę odciążenia danych na dysk (VM) opartą na hybrydowym algorytmie uwzględniającym zarówno LRU, jak i rozmiar obiektu.
Membase wykorzystuje protokół memcached wire - przydatny jako ścieżka aktualizacji dla istniejących aplikacji
Wybór może zależeć od stopnia, w jakim Twoja aplikacja może wykorzystać dodatkowe funkcje manipulacji danymi w Redis.
źródło
Hazelcast obsługuje natywnie protokół memcached
https://web.archive.org/web/20140601010929/http://hazelcast.org/docs/latest/manual/html-single/hazelcast-documentation.html
i dlatego jest nowoczesną alternatywą dla memcached. Powinieneś wypróbować wszystkie rozwiązania, aby zobaczyć, co działa najlepiej dla Ciebie.
źródło