HOSTING CEPATDOMAIN MURAHSSL GRATISSUPPORT 24/7UPTIME 99.9%SERVER INDONESIAHOSTING CEPATDOMAIN MURAHSSL GRATISSUPPORT 24/7UPTIME 99.9%SERVER INDONESIA
Tutorial

Cara Setup Memcached untuk Caching: Mempercepat Website dengan Object Caching

Tim HostingEkspres|4 Juni 2026|13 menit baca
cara setup memcachedmemcached cachingobject caching websitememcached wordpressmemcached phpinstall memcached linuxmempercepat websitememcached vs redis
Cara Setup Memcached untuk Caching: Mempercepat Website dengan Object Caching
📚 Baca juga: Cara Setup Redis | Cdn untuk Website Indonesia | Cara Mempercepat Website Wordpress | Cara Membuat Website

Apa Itu Memcached dan Bagaimana Cara Kerjanya?

Memcached adalah sistem distributed memory object caching open-source yang dirancang untuk mempercepat aplikasi web dinamis dengan mengurangi beban database. Dikembangkan pertama kali oleh Brad Fitzpatrick pada tahun 2003 untuk kebutuhan LiveJournal, Memcached kini digunakan oleh perusahaan teknologi raksasa seperti Facebook, Twitter, Wikipedia, dan YouTube untuk menangani miliaran request per hari.

Cara kerja Memcached sederhana namun sangat efektif: ia menyimpan pasangan key-value di memori (RAM) server. Ketika aplikasi Anda membutuhkan data - misalnya hasil query database, output kalkulasi yang berat, atau data API eksternal - aplikasi pertama kali memeriksa Memcached. Jika data tersedia di cache (cache hit), data langsung dikembalikan tanpa menyentuh database. Jika tidak ada (cache miss), data diambil dari sumber aslinya dan disimpan ke Memcached untuk request berikutnya.

Keunggulan utama Memcached adalah kesederhanaan dan kecepatan ekstrem. Arsitekturnya yang minimalis - hanya mendukung operasi get, set, dan delete pada string - membuatnya sangat ringan dan mampu menangani jutaan operasi per detik dengan latensi di bawah 1 millisecond. Untuk use case caching murni, Memcached sering kali lebih cepat daripada Redis karena overhead yang lebih rendah.

Kapan Harus Memilih Memcached vs Redis?

Sebelum melanjutkan ke instalasi, penting untuk memastikan Memcached adalah pilihan tepat untuk kebutuhan Anda:

cara setup memcached
Ilustrasi cara setup memcached
  • Pilih Memcached jika: Anda hanya membutuhkan caching string sederhana, ingin solusi paling ringan dengan overhead minimal, atau memiliki tim yang sudah familiar dengan Memcached dari legacy system.
  • Pilih Redis jika: Anda membutuhkan persistensi data, tipe data yang lebih beragam (list, set, hash), pub/sub messaging, atau fitur cluster bawaan.

Untuk integrasi dengan WordPress menggunakan plugin standar, keduanya berfungsi sangat baik. Panduan ini fokus pada cara setup Memcached dari nol hingga terintegrasi dengan website Anda.

Persyaratan Sistem

Sebelum memulai, pastikan Anda memiliki:

  • Server Linux (Ubuntu 22.04 LTS atau Debian 12)
  • Akses root atau sudo ke server
  • PHP 7.4 atau lebih baru
  • Web server (Nginx atau Apache)
  • RAM minimal 256MB tersedia untuk Memcached

Langkah 1: Instalasi Memcached di Ubuntu 22.04

Memcached tersedia langsung di repository resmi Ubuntu, sehingga instalasinya sangat mudah:

# Update package list
sudo apt update

# Install Memcached dan dependensinya
sudo apt install -y memcached libmemcached-tools

# Verifikasi instalasi
memcached --version

Setelah instalasi, Memcached akan langsung berjalan otomatis. Verifikasi statusnya:

sudo systemctl status memcached

Jika status menampilkan active (running), Memcached sudah berjalan. Aktifkan agar berjalan otomatis saat server restart:

sudo systemctl enable memcached

Langkah 2: Konfigurasi Memcached

Konfigurasi utama Memcached terletak di file /etc/memcached.conf. Buka file tersebut untuk menyesuaikan pengaturan:

sudo nano /etc/memcached.conf

2a. Atur Alokasi Memori

Secara default, Memcached hanya menggunakan 64MB RAM. Untuk produksi, tingkatkan sesuai ketersediaan RAM server:

# Alokasikan 256MB RAM untuk Memcached (ubah nilai setelah -m)
-m 256

Panduan alokasi memori yang disarankan:

  • Server dengan 1GB RAM: alokasikan 256MB untuk Memcached
  • Server dengan 2GB RAM: alokasikan 512MB untuk Memcached
  • Server dengan 4GB RAM ke atas: alokasikan 1GB untuk Memcached

2b. Bind ke Localhost untuk Keamanan

Sama seperti Redis, Memcached hanya perlu bisa diakses dari server itu sendiri. Pastikan baris berikut ada dan tidak dikomentari:

# Hanya terima koneksi dari localhost
-l 127.0.0.1

Perhatian penting: Memcached tidak memiliki fitur autentikasi bawaan. Jika Memcached terbuka ke internet (bukan hanya localhost), siapa pun bisa membaca, menulis, atau menghapus data cache Anda. Selalu pastikan binding ke localhost atau gunakan firewall yang ketat.

2c. Konfigurasi Port dan Koneksi

# Port default Memcached (standar industri, tidak perlu diubah kecuali ada konflik)
-p 11211

# Jumlah maksimum koneksi simultan
-c 1024

# Jumlah thread untuk memproses request (sesuaikan dengan jumlah CPU core)
-t 4

2d. Atur Ukuran Maksimum Item Cache

# Ukuran maksimum satu item cache (default 1MB, cukup untuk kebanyakan kebutuhan)
-I 1m

# Jika menyimpan data HTML yang besar, bisa ditingkatkan hingga 5m atau 10m
# -I 5m

Setelah selesai mengedit, simpan dan restart Memcached:

sudo systemctl restart memcached

2e. Verifikasi Konfigurasi dengan memcstat

# Lihat statistik Memcached saat ini
memcstat --servers="127.0.0.1:11211"

# Atau gunakan telnet untuk test koneksi manual
telnet 127.0.0.1 11211
# Ketik: stats
# Ketik: quit untuk keluar

Langkah 3: Instalasi Ekstensi PHP untuk Memcached

Ada dua ekstensi PHP yang bisa digunakan untuk berkomunikasi dengan Memcached:

  • php-memcached: Menggunakan library libmemcached, mendukung fitur lebih lengkap termasuk binary protocol dan SASL authentication. Ini yang direkomendasikan.
  • php-memcache: Versi lama, sudah jarang digunakan. Hindari untuk instalasi baru.
# Install ekstensi php-memcached (direkomendasikan)
sudo apt install -y php8.2-memcached

# Atau untuk PHP 8.1:
# sudo apt install -y php8.1-memcached

# Restart PHP-FPM
sudo systemctl restart php8.2-fpm

# Verifikasi ekstensi terinstal
php -m | grep memcached

Output harus menampilkan memcached jika ekstensi berhasil dimuat.

Langkah 4: Integrasi Memcached dengan WordPress

WordPress dapat menggunakan Memcached sebagai backend untuk object cache, menggantikan file-based cache yang lambat.

Metode 1: Plugin W3 Total Cache dengan Memcached Backend

W3 Total Cache adalah plugin WordPress paling komprehensif yang mendukung Memcached sebagai backend untuk berbagai jenis cache:

  1. Install dan aktifkan plugin W3 Total Cache dari repository WordPress
  2. Navigasi ke Performance > General Settings
  3. Pada bagian Object Cache, centang Enable dan pilih Memcached sebagai engine
  4. Pada bagian Database Cache, centang Enable dan pilih Memcached
  5. Pada bagian Fragment Cache, centang Enable dan pilih Memcached
  6. Klik Save all settings
  7. Navigasi ke Performance > Object Cache, masukkan 127.0.0.1:11211 di kolom server
  8. Klik Test untuk memverifikasi koneksi, lalu Save Settings & Purge Caches

Metode 2: Plugin Memcached Object Cache (Drop-in)

Alternatif yang lebih ringan adalah menggunakan drop-in object cache khusus untuk Memcached:

  1. Download file object-cache.php dari plugin Memcached Object Cache di WordPress.org
  2. Upload file tersebut ke direktori /wp-content/ website Anda (bukan ke folder plugins)
  3. Tambahkan konfigurasi ke wp-config.php:
// Konfigurasi Memcached untuk WordPress
global $memcached_servers;
$memcached_servers = array(
    'default' => array(
        '127.0.0.1:11211'
    )
);

Verifikasi Cache WordPress Berjalan

Install plugin Query Monitor untuk memverifikasi bahwa object cache aktif. Di bagian "Object Cache" pada Query Monitor, status harus menampilkan "External Object Cache In Use" dengan informasi koneksi ke Memcached.

cara setup memcached
Ilustrasi cara setup memcached

Langkah 5: Menggunakan Memcached di Kode PHP Kustom

Untuk aplikasi PHP yang tidak menggunakan WordPress, berikut contoh penggunaan langsung ekstensi php-memcached:

<?php
// Inisialisasi koneksi Memcached
$memcached = new Memcached();
$memcached->addServer('127.0.0.1', 11211);

// Set opsi koneksi
$memcached->setOption(Memcached::OPT_CONNECT_TIMEOUT, 500);
$memcached->setOption(Memcached::OPT_RETRY_TIMEOUT, 300);
$memcached->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);

// Fungsi helper untuk cache-aside pattern
function getCachedData(Memcached $mc, string $key, callable $fetchFn, int $ttl = 3600): mixed {
    $data = $mc->get($key);

    if ($mc->getResultCode() === Memcached::RES_NOTFOUND) {
        $data = $fetchFn();
        $mc->set($key, $data, $ttl);
    }

    return $data;
}

// Contoh penggunaan: cache hasil query database
$artikel = getCachedData(
    $memcached,
    'artikel_terpopuler_7hari',
    function() use ($db) {
        return $db->query('SELECT * FROM artikel ORDER BY views DESC LIMIT 10');
    },
    1800 // cache 30 menit
);
?>

Menggunakan Memcached sebagai Session Handler PHP

Memcached juga bisa digunakan sebagai session handler PHP untuk performa lebih baik:

sudo nano /etc/php/8.2/fpm/php.ini

Cari dan ubah konfigurasi session berikut:

; Gunakan Memcached sebagai session handler
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"
# Restart PHP-FPM untuk menerapkan perubahan
sudo systemctl restart php8.2-fpm

Langkah 6: Memcached dengan Multiple Server (Distributed Caching)

Salah satu kekuatan utama Memcached adalah kemampuan distributed caching bawaan - data dapat didistribusikan secara otomatis ke beberapa server Memcached menggunakan consistent hashing:

<?php
// Konfigurasi multi-server Memcached untuk setup distributed
$memcached = new Memcached();

// Tambahkan beberapa server dengan bobot berbeda
$memcached->addServers(array(
    array('server1.contoh.com', 11211, 33),  // 33% traffic
    array('server2.contoh.com', 11211, 33),  // 33% traffic
    array('server3.contoh.com', 11211, 34),  // 34% traffic
));

// Aktifkan consistent hashing untuk distribusi yang merata
$memcached->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$memcached->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
?>

Setup multi-server berguna untuk website dengan traffic sangat tinggi di mana satu server Memcached tidak cukup, atau untuk high availability di mana jika satu server mati, cache tetap tersedia dari server lain.

Langkah 7: Monitoring Performa Memcached

Memantau performa Memcached penting untuk memastikan cache berjalan efektif:

Menggunakan memcstat

# Lihat statistik lengkap Memcached
memcstat --servers="127.0.0.1:11211"

Metrik penting yang perlu diperhatikan:

  • get_hits dan get_misses: Rasio hits/(hits+misses) adalah cache hit rate. Target minimal 80%.
  • curr_items: Jumlah item yang saat ini tersimpan di cache.
  • bytes: Total memori yang digunakan. Bandingkan dengan limit_maxbytes.
  • evictions: Jumlah item yang dihapus paksa karena memori penuh. Nilai tinggi berarti alokasi memori perlu ditingkatkan.
  • cmd_set vs cmd_get: Rasio yang wajar adalah lebih banyak get daripada set.

Script Monitoring Sederhana

#!/bin/bash
# Script monitoring cache hit rate Memcached

STATS=$(echo "stats" | nc 127.0.0.1 11211)
HITS=$(echo "$STATS" | grep "STAT get_hits" | awk '{print $3}')
MISSES=$(echo "$STATS" | grep "STAT get_misses" | awk '{print $3}')
TOTAL=$((HITS + MISSES))

if [ $TOTAL -gt 0 ]; then
    HIT_RATE=$(echo "scale=2; $HITS * 100 / $TOTAL" | bc)
    echo "Cache Hit Rate: ${HIT_RATE}%"
    echo "Hits: $HITS | Misses: $MISSES | Total: $TOTAL"
else
    echo "Belum ada data statistik cache"
fi

Langkah 8: Keamanan Memcached - Konfigurasi Firewall

Seperti yang disebutkan sebelumnya, Memcached tidak memiliki autentikasi bawaan. Mengamankannya melalui firewall adalah wajib:

# Blokir akses ke port Memcached dari internet
sudo ufw deny 11211

# Verifikasi tidak ada rule yang membuka port 11211 untuk umum
sudo ufw status | grep 11211

Jika perlu mengakses Memcached dari server lain (misalnya untuk distributed caching), gunakan koneksi melalui SSH tunnel daripada membuka port ke internet:

# Dari server lain, buat SSH tunnel ke Memcached
ssh -L 11211:127.0.0.1:11211 user@server-memcached.com -N

Dengan tunnel ini, Memcached di server remote bisa diakses via 127.0.0.1:11211 melalui koneksi SSH yang terenkripsi.

Langkah 9: Optimasi Lanjutan Memcached

Tuning Slab Allocator

Memcached menggunakan mekanisme slab allocation untuk mengelola memori secara efisien. Jika data cache Anda cenderung berukuran seragam (misalnya semua item sekitar 200-500 byte), optimasi slab dapat meningkatkan utilisasi memori:

sudo nano /etc/memcached.conf
# Faktor pertumbuhan slab (default 1.25)
# Nilai lebih kecil = lebih banyak slab kecil = lebih hemat memori untuk item kecil
-f 1.1

# Ukuran slab minimum (default 48 bytes)
# Naikkan jika item cache Anda selalu lebih besar dari nilai default
# -n 64

Nonaktifkan CAS (Check-And-Set) Jika Tidak Diperlukan

Jika aplikasi Anda tidak menggunakan operasi CAS (optimistic locking), nonaktifkan untuk menghemat memori per item cache:

# Tambahkan flag ini di /etc/memcached.conf
-C

Setiap item tanpa CAS menghemat 8 byte memori - kecil per item, tapi signifikan jika ada jutaan item.

Perbandingan Memcached vs Redis: Mana yang Lebih Baik?

Setelah memahami cara setup Memcached, berikut perbandingan objektif untuk membantu Anda memilih:

  • Kecepatan raw untuk caching string: Memcached sedikit lebih cepat karena overhead lebih rendah
  • Tipe data: Redis jauh lebih kaya (string, list, hash, set, sorted set, dll.)
  • Persistensi: Redis mendukung, Memcached tidak
  • Distributed caching bawaan: Keduanya mendukung, implementasi Memcached lebih sederhana
  • Keamanan: Redis mendukung password (requirepass), Memcached tidak punya autentikasi bawaan
  • Memory efficiency: Memcached lebih efisien untuk data string sederhana
  • Ekosistem WordPress: Keduanya didukung baik oleh plugin caching populer

Kesimpulan: untuk caching murni yang sederhana dengan performa maksimal, Memcached adalah pilihan solid. Untuk kebutuhan yang lebih kompleks atau jika Anda membutuhkan persistensi dan fitur tambahan, pilih Redis.

FAQ: Pertanyaan Umum tentang Setup Memcached

Apakah Memcached aman digunakan di VPS?

Ya, Memcached sangat aman digunakan di VPS selama dikonfigurasi dengan benar - khususnya binding ke localhost (127.0.0.1) dan tidak membuka port 11211 ke internet publik. Karena Memcached tidak memiliki autentikasi bawaan, keamanannya bergantung sepenuhnya pada konfigurasi network. Dengan mengikuti langkah-langkah di panduan ini, Memcached Anda sudah aman dari akses tidak sah.

Berapa besar memori yang harus dialokasikan untuk Memcached?

Panduan umum: alokasikan 20–30% dari total RAM server untuk Memcached. Untuk server 1GB RAM, alokasikan 200–300MB. Untuk server 2GB RAM, alokasikan 400–600MB. Mulai dari nilai konservatif dan monitor metrik evictions - jika eviction sering terjadi, naikkan alokasi memori secara bertahap.

Mengapa cache hit rate Memcached saya rendah?

Cache hit rate yang rendah (di bawah 50%) biasanya disebabkan oleh: (1) TTL cache yang terlalu pendek sehingga data sering kedaluwarsa sebelum di-request lagi, (2) memori Memcached terlalu kecil sehingga item sering di-evict, (3) pola akses data yang sangat acak sehingga setiap request membutuhkan data yang berbeda, atau (4) cache invalidation yang terlalu agresif. Cek metrik evictions dan curr_items untuk mendiagnosis penyebabnya.

Bisakah Memcached digunakan untuk menyimpan session PHP di multiple server?

Ya, ini adalah salah satu use case terbaik Memcached. Dengan konfigurasi multiple server Memcached dan session handler PHP yang diarahkan ke Memcached cluster, session pengguna bisa diakses dari server mana pun dalam cluster - sangat berguna untuk setup load balancing. Konfigurasinya: session.save_path = "127.0.0.1:11211,127.0.0.2:11211".

Bagaimana cara menghapus semua cache Memcached?

Ada beberapa cara: (1) Restart Memcached service: sudo systemctl restart memcached - ini menghapus semua data karena Memcached in-memory. (2) Via telnet: echo "flush_all" | nc 127.0.0.1 11211. (3) Via PHP: $memcached->flush(). Untuk WordPress dengan W3 Total Cache, gunakan menu "Empty All Caches" di dashboard plugin.

Apakah Memcached bisa digunakan di Windows Server?

Memcached tidak memiliki build Windows resmi yang aktif dikembangkan, sehingga tidak direkomendasikan untuk production di Windows Server. Alternatifnya, gunakan Redis yang memiliki support Windows yang lebih baik (via WSL2 atau Windows port unofficial), atau gunakan Memcached hanya di server Linux seperti yang dijelaskan dalam panduan ini.

Apakah setup Memcached memengaruhi SEO website?

Secara positif, ya! Memcached mempercepat waktu respons server (TTFB - Time to First Byte), yang merupakan faktor peringkat Google dalam Core Web Vitals. Website yang lebih cepat mendapat keuntungan SEO. Google merekomendasikan TTFB di bawah 800ms; dengan Memcached yang dikonfigurasi dengan baik, banyak website bisa mencapai TTFB di bawah 200ms. Gunakan Google PageSpeed Insights atau GTmetrix untuk mengukur perubahan performa sebelum dan sesudah implementasi Memcached.

Kesimpulan: Memcached sebagai Solusi Caching yang Terbukti

Panduan cara setup Memcached ini telah membawa Anda dari instalasi dasar hingga konfigurasi produksi yang aman dan optimal, integrasi dengan WordPress, dan monitoring performa. Memcached adalah teknologi yang sudah terbukti selama lebih dari dua dekade dalam menangani traffic skala besar.

Setelah Memcached berjalan, langkah berikutnya untuk optimasi performa yang lebih komprehensif adalah implementasi CDN (Content Delivery Network) untuk mendistribusikan static assets ke edge server yang lebih dekat dengan pengunjung Indonesia, dan pastikan web server Nginx dikonfigurasi dengan caching header yang tepat. Jika Anda menginginkan server yang sudah pre-configured dengan Memcached, Nginx, PHP-FPM yang dioptimalkan, dan stack performa lengkap, VPS HostingEkspres hadir sebagai solusi yang siap pakai untuk website produksi Anda.

Butuh Hosting untuk Website Anda?

Dapatkan hosting cepat, aman, dan terpercaya dengan harga terjangkau. Gratis domain, SSL, dan support 24/7.

Jangan Ketinggalan Promo!

Subscribe newsletter kami dan dapatkan diskon hingga 50% untuk pembelian pertama kamu.

Gratis, tanpa spam. Bisa unsubscribe kapan saja.