Przeczytałem ten artykuł: http://www.mysqlperformanceblog.com/2006/09/27/apc-or-memcached/ z dawnych czasów ... Chcę uzyskać najlepszy dostępny silnik buforowania, aby moja aplikacja była naprawdę szybka. Oczywiście nie chcę przesadzać z pamięcią podręczną, ale chcę przynajmniej wybrać najlepszą dostępną opcję. W tym artykule napisano, że Memcached jest wolny, a apc jest szybki, więc dlaczego wszyscy wybierają memcached ?
http://framework.zend.com/manual/en/zend.cache.backends.html#zend.cache.backends.twolevels tutaj jest napisane „użyj szybkiego (ale ograniczonego), takiego jak Apc, Memcache ... i "wolny" taki jak File, Sqlite ... "Czy uważasz, że używanie Apc jako szybkiego i Memcache jako wolnego to dobry pomysł?
apc_store
. Sama pamięć podręczna kodu operacyjnego sprawia, że PHP jest kilka razy szybsze.apc_store()
jest tylko dodatkowym dodatkiem do tego.Odpowiedzi:
Memcached to rozproszony system buforowania, podczas gdy APC jest nierozproszony - i jest głównie pamięcią podręczną kodu operacyjnego.
Jeśli (i tylko jeśli) masz aplikację internetową, która musi działać na różnych serwerach internetowych (równoważenie obciążenia), musisz użyć memcache do rozproszonego buforowania. Jeśli nie, po prostu trzymaj się APC i jego pamięci podręcznej.
Powinieneś zawsze używać pamięci podręcznej kodu operacji, którą jest APC (również APC zostanie zintegrowany z php6 iirc, więc dlaczego nie zacząć go używać teraz).
Możesz / powinieneś używać obu do różnych celów.
źródło
opcode
pamięć podręczna?opcode
Cache to taki, który kompiluje zwykły kod PHP do kodu maszynowego ( „rozkazu”), a następnie zapisuje je w postaci skompilowanej dla przyszłych wniosków (aż wykryje oryginalny plik PHP się nie zmieniło). Oznacza to, że PHP nie musi uruchamiać tego kroku kompilacji przy każdym żądaniu, oszczędzając trochę czasu. To tylko jeden ze sposobów na zapewnienie szybkiego działania witryny (wśród wielu innych).Memcached, jeśli chcesz zachować stan na kilku serwerach internetowych (jeśli masz zrównoważone obciążenie i ważne jest, aby zawartość pamięci podręcznej była taka sama dla wszystkich serwerów).
APC, jeśli potrzebujesz tylko dostępu do szybkiej pamięci do odczytu (i zapisu) na (lub każdym) serwerze.
Pamiętaj, że firma APC może również skompilować i przyspieszyć czas wykonywania skryptu. Możesz więc na przykład używać APC w celu zwiększenia wydajności wykonywania, podczas gdy memcached służy do przechowywania pamięci podręcznej.
źródło
Główną zaletą APC jest pamięć podręczna kodu operacji. Ponieważ PHP 5.5 zintegrowało OpCache ze swoim rdzeniem, a APC dla PHP 5.4 jest nadal oznaczane jako beta, nie jest to oficjalne ogłoszenie, ale rozwój APC zostałby przerwany w najbliższej przyszłości.
Dlatego polecam wybrać Memcached.
źródło
Używam jednego do szybkiego, a drugiego do synchronizacji wszystkich moich serwerów. Jeśli używasz memcache, pamiętaj o otwartych portach, które będziesz musiał zablokować za pomocą iptables.
źródło
Hej Thomaschaaf, mam nadzieję, że to nie jest dla ciebie zbyt późno narzędzie, ale pamiętaj, że firma APC ma pewne problemy związane z "pamięcią podręczną użytkownika". Krótko mówiąc, kiedy ustawiasz limity czasu dla wpisów pamięci podręcznej lub jeśli twój apache ulega awarii w wewnętrznym kodzie APC (na przykład przekroczeniu limitu czasu), możesz napotkać pewne problemy.
Mam tutaj wpis dotyczący problemu: http://nirlevy.blogspot.com/2009/06/apc-futexwait-lockdown-make-your-apache.html , a także należy przeczytać http: //t3.dotgnu. info / blog / php / user-cache-timebomb.html (chyba od jednego z programistów APC)
źródło
Używam tylko APC, ponieważ APC jest pamięcią podręczną kodu i działa jak memcache! Tylko 1 plik konfiguracyjny zamiast 2.
I tylko jedno miejsce do monitorowania obu pamięci podręcznych .....
źródło
To zależy od tego, co robisz, ale w przypadku moich witryn drupal działających na VPS uważam, że APC działa świetnie! Jeśli korzystasz z CentOS 6, jest on dostępny jako aktualizacja yum, więc jest prosta w instalacji i brak konfiguracji, ponieważ wartości domyślne są rozsądne. Nie do pomyślenia imho.
źródło