Memcached vs Redis — który cache wybrać dla WordPressa i aplikacji webowych
Opublikowano: 9 kwietnia 2026 · Kategoria: Wydajność
Masz wolną stronę WordPress i wiesz, że potrzebujesz Object Cache? Stajesz przed wyborem: klasyczny Memcached czy nowszy Redis? Oba przechowują dane w pamięci RAM i obsługują zapytania poniżej milisekundy. Różnic jest jednak sporo — od persystencji po obsługę struktur danych. Oto praktyczne porównanie.
Podstawowa różnica — architektura
Memcached to prosty, wielowątkowy cache key-value. Jeden klucz = jedna wartość (tekst lub serializowany obiekt). Brak persystencji — po restarcie cała zawartość znika. Powstał w 2003 roku do cache'owania bazy MySQL w LiveJournal.
Redis to "struktura danych w pamięci" — obok prostego key-value obsługuje listy, sety, sorted sety, hashe, streams, pub/sub, skrypty Lua i transakcje. Ma opcjonalną persystencję (snapshots RDB lub AOF log) oraz replikację master-replica. Jeden wątek per instancja, ale szybki dzięki event loop.
| Cecha | Memcached | Redis |
|---|---|---|
| Typy danych | Tylko string (klucz-wartość) | String, list, set, hash, sorted set, stream |
| Persystencja | Brak | RDB snapshots + AOF log |
| Replikacja | Brak (wymaga zewnętrznych rozwiązań) | Master-replica, Redis Sentinel, Cluster |
| Wielowątkowość | Tak (I/O + przetwarzanie) | Jeden wątek (od Redis 6: I/O wielowątkowe) |
| Max rozmiar wartości | 1 MB (konfigurowalne do 128 MB) | 512 MB per klucz |
| Pub/Sub, kolejki | Nie | Tak (pub/sub, listy jako kolejki, streams) |
| Wtyczki WordPress | W3 Total Cache (opcjonalnie) | Redis Object Cache (oficjalna), LiteSpeed Cache |
| Wsparcie Laravel | Tak (driver memcached) | Tak (preferowany, cache + queue + session) |
Redis dla WordPressa — instalacja na VPS
# Ubuntu/Debian — instalacja sudo apt update sudo apt install redis-server php-redis # Edycja konfiguracji sudo nano /etc/redis/redis.conf # Kluczowe ustawienia: maxmemory 256mb maxmemory-policy allkeys-lru supervised systemd bind 127.0.0.1 ::1 # Restart i autostart sudo systemctl restart redis-server sudo systemctl enable redis-server # Test redis-cli ping # Wynik: PONG
W WordPressie zainstaluj wtyczkę Redis Object Cache (darmowa, od Till Krüss).
Dodaj do wp-config.php:
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_TIMEOUT', 1);
define('WP_REDIS_READ_TIMEOUT', 1);
define('WP_REDIS_DATABASE', 0);
define('WP_CACHE_KEY_SALT', 'moja-strona:'); W panelu WordPressa: Ustawienia → Redis → "Enable Object Cache". Po włączeniu zobaczysz statystyki (hit rate, używana pamięć). Dobry hit rate to 90%+.
Memcached — instalacja i konfiguracja
# Ubuntu/Debian sudo apt install memcached php-memcached # /etc/memcached.conf -m 256 # max 256 MB RAM -p 11211 # port -l 127.0.0.1 # tylko localhost -U 0 # wyłącz UDP (ochrona przed amplification attack) sudo systemctl restart memcached sudo systemctl enable memcached # Test echo "stats" | nc localhost 11211 | head -20
Bezpieczeństwo
- Bind tylko na localhost —
bind 127.0.0.1(Redis) i-l 127.0.0.1(Memcached). Nigdy nie wystawiaj na 0.0.0.0 bez hasła i firewalla. - Redis: requirepass — ustaw hasło w
/etc/redis/redis.conf:requirepass TwojeSilneHaslo123i w wp-config:WP_REDIS_PASSWORD. - Memcached: wyłącz UDP — port UDP 11211 był wykorzystywany w atakach DDoS amplification
(do 50000× wzmocnienia).
-U 0jest obowiązkowe. - UFW firewall — zablokuj porty 6379 (Redis) i 11211 (Memcached) od zewnątrz:
sudo ufw deny 6379 && sudo ufw deny 11211.
Który wybrać?
- WordPress / WooCommerce → Redis (Redis Object Cache plugin, persystencja, lepsze struktury)
- Laravel / Symfony → Redis (cache + queue + session w jednym)
- Prosty cache DB query w PHP → oba działają, Memcached nieco szybszy w czystym SET/GET
- Potrzebujesz pub/sub, kolejek, rate limiting → Redis (Memcached nie obsługuje)
- Masz tylko 64 MB RAM na cache → Memcached ma mniejszy overhead, ale różnica jest drobna
Rekomendacja: W 2026 roku domyślnym wyborem powinien być Redis. Memcached zostaw dla istniejących systemów gdzie już jest — nie migruj tylko dla samej migracji.