Memcache bardziej przypomina pamięć podręczną obiektów rozproszonych w porównaniu z czymś takim, jak APC lub XCache, który przechowuje kod bajtowy PHP w pamięci, aby uniknąć konieczności analizowania go za każdym razem. Ich główne cele są różne.
Na przykład, jeśli miałeś bardzo intensywne procesorowe zapytanie o bazę danych, o które często prosili ludzie, możesz buforować wynikowy obiekt w memcache, a następnie odwoływać się do niego zamiast powtarzać to zapytanie przez cały czas.
APC & XCache mają podobne funkcje buforowania obiektów, ale użytkownik jest ograniczony do komputera hosta. Co się stanie, jeśli chcesz, aby 10 różnych serwerów miało dostęp do tego jednego obiektu bez konieczności ponownego wykonywania zapytania dla każdego serwera? Po prostu skierujesz je do swojego serwera memcache i odejdziesz. Nadal będziesz czerpał korzyści, jeśli masz tylko jeden serwer, ponieważ korzystanie z memcache pomoże Ci skalować się w przyszłości, jeśli potrzebujesz rozgałęziać się do większej liczby skrzynek.
Najważniejszą rzeczą do rozważenia jest to, czy uważasz, że Twoja aplikacja będzie wymagać skalowania. Memcache ma więcej narzutów, ponieważ musisz użyć połączenia TCP, aby uzyskać do niego dostęp, w przeciwieństwie do wywołania funkcji dla wspólnych obiektów APC/Xcache.
Jednak Memcache ma następujące zalety:
- szybciej niż dysk lub ponownie uruchomiony zapytania.
- Skaluje do wielu serwerów.
- Działa z wieloma różnymi językami, twoje obiekty nie są zablokowane tylko w PHP + APC/Xcache.
- Wszystkie procesy/języki mają dostęp do tych samych obiektów, więc nie musisz się martwić, jeśli procesy potomne PHP mają pustą pamięć podręczną obiektów. To może nie być wielka sprawa, jeśli korzystasz z PHP-FPM.
W większości przypadków, polecam buforowanie obiektów w memcache jak to nie jest dużo trudniejsze & jest bardziej elastyczny w przyszłości.
Należy pamiętać, że jest to tylko dotyczące buforowania obiektów. Memcache ma NOT ma jakieś funkcje przyspieszenia kodu bajtowego lub PHP, dlatego też będę je uruchamiał równolegle z APC lub Xcache
@SankalpSingha dlaczego jest niedorzeczny? Czy nie powinny być używane w tym samym czasie? Chcę użyć APC do buforowania opcode i memcached dla mojej pamięci sesji php. Czy to nie jest dobry pomysł i dlaczego? –
@SankalpSingha Niedorzeczna odpowiedź! Co powiesz na wyjaśnienie, dlaczego ... –