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

Cara Setup Redis untuk Caching Website: Panduan Optimasi Performa

Tim HostingEkspres|4 Juni 2026|14 menit baca
cara setup redisredis cachingoptimasi performa websiteredis wordpressredis phpinstall redis linuxobject caching redisredis server indonesia
Cara Setup Redis untuk Caching Website: Panduan Optimasi Performa
📚 Baca juga: Cara Setup Memcached | Cdn untuk Website Indonesia | Cara Mempercepat Website Wordpress | Cara Membuat Website

Apa Itu Redis dan Mengapa Website Anda Membutuhkannya?

Redis (Remote Dictionary Server) adalah penyimpanan struktur data in-memory open-source yang berfungsi sebagai database, cache, dan message broker. Dalam konteks optimasi website, Redis paling banyak digunakan sebagai caching layer - tempat menyimpan data yang sering diakses secara sementara di RAM agar tidak perlu membaca ulang dari database atau menjalankan query yang berat setiap kali ada permintaan.

Bayangkan sebuah toko buku besar: setiap kali pelanggan meminta buku bestseller, pegawai harus pergi ke gudang belakang untuk mengambilnya. Jika buku tersebut disimpan di rak depan kasir (cache), pegawai bisa melayani permintaan dengan jauh lebih cepat. Itulah peran Redis terhadap website Anda - ia menjadi "rak depan kasir" untuk data yang paling sering dibutuhkan.

Manfaat utama cara setup Redis yang benar untuk website meliputi: pengurangan waktu respons server hingga 10x lipat, penurunan beban database MySQL/PostgreSQL secara drastis, dukungan untuk session storage yang lebih cepat dari file-based session, serta kemampuan menangani traffic spike tanpa server kewalahan.

Persyaratan Sebelum Memulai Setup Redis

Sebelum mengikuti panduan ini, pastikan Anda sudah memiliki:

cara setup redis
Ilustrasi cara setup redis
  • Server Linux (Ubuntu 22.04 LTS atau Debian 12 direkomendasikan) dengan akses root atau sudo
  • Minimal RAM 512MB (1GB atau lebih sangat direkomendasikan untuk produksi)
  • Web server Nginx atau Apache yang sudah berjalan
  • PHP 7.4 ke atas dengan ekstensi php-redis atau php-predis
  • Akses SSH ke server

Panduan ini menggunakan Ubuntu 22.04 LTS sebagai sistem operasi referensi. Perintah-perintahnya umumnya kompatibel dengan Debian dan distribusi Ubuntu lainnya.

Langkah 1: Instalasi Redis di Linux Ubuntu

Ubuntu 22.04 menyertakan Redis di repository resminya. Namun untuk mendapatkan versi terbaru, kita akan menggunakan repository resmi Redis:

# Update package list terlebih dahulu
sudo apt update

# Install dependensi yang diperlukan
sudo apt install -y curl gnupg2 lsb-release

# Tambahkan GPG key resmi Redis
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

# Tambahkan repository Redis
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

# Update dan install Redis
sudo apt update
sudo apt install -y redis-server

Setelah instalasi selesai, verifikasi bahwa Redis berhasil terinstal:

# Cek versi Redis
redis-server --version

# Cek status service Redis
sudo systemctl status redis-server

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

sudo systemctl enable redis-server

Langkah 2: Konfigurasi Redis untuk Produksi

Konfigurasi default Redis belum optimal untuk penggunaan produksi. Kita perlu menyesuaikan beberapa parameter penting. Buka file konfigurasi Redis:

sudo nano /etc/redis/redis.conf

2a. Batasi Penggunaan Memori

Sangat penting untuk membatasi memori yang bisa digunakan Redis agar tidak menghabiskan seluruh RAM server. Cari dan ubah baris berikut:

# Batasi Redis menggunakan maksimal 256MB RAM (sesuaikan dengan ketersediaan RAM server)
maxmemory 256mb

# Tentukan kebijakan saat memori penuh: allkeys-lru menghapus key yang paling jarang diakses
maxmemory-policy allkeys-lru

Kebijakan allkeys-lru adalah pilihan terbaik untuk use case caching - Redis akan otomatis menghapus data yang paling lama tidak diakses ketika memori hampir penuh, mirip seperti sistem cache browser.

2b. Amankan Redis dengan Password

Secara default, Redis tidak memerlukan autentikasi - ini berbahaya di lingkungan produksi. Tambahkan password yang kuat:

# Cari baris "# requirepass foobared" dan ganti dengan:
requirepass PasswordRedisKuat2026!

Ganti PasswordRedisKuat2026! dengan password acak yang panjang dan kompleks.

2c. Nonaktifkan Akses dari Luar (Bind ke Localhost)

Redis sebaiknya hanya dapat diakses dari server itu sendiri, bukan dari jaringan luar:

# Pastikan baris bind hanya berisi 127.0.0.1
bind 127.0.0.1 -::1

2d. Aktifkan Persistensi Data (Opsional)

Untuk use case caching murni, persistensi tidak diperlukan karena data cache boleh hilang saat server restart. Namun jika menggunakan Redis untuk session storage, aktifkan RDB persistence:

# Simpan snapshot setiap 900 detik jika ada minimal 1 perubahan
save 900 1
# Simpan setiap 300 detik jika ada minimal 10 perubahan
save 300 10

Setelah selesai mengedit, simpan file dan restart Redis:

sudo systemctl restart redis-server

2e. Verifikasi Koneksi Redis

# Masuk ke Redis CLI
redis-cli

# Autentikasi dengan password
AUTH PasswordRedisKuat2026!

# Test koneksi dasar
PING
# Harus menampilkan: PONG

# Simpan dan ambil nilai test
SET test "Redis berjalan dengan baik!"
GET test

# Keluar dari CLI
EXIT

Langkah 3: Install Ekstensi PHP Redis

Agar PHP dapat berkomunikasi dengan Redis, kita perlu menginstal ekstensi php-redis:

# Install ekstensi PHP Redis (sesuaikan versi PHP Anda)
sudo apt install -y php8.2-redis

# Atau jika menggunakan PHP 8.1:
# sudo apt install -y php8.1-redis

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

# Verifikasi ekstensi terinstal
php -m | grep redis

Output harus menampilkan redis jika ekstensi berhasil dimuat.

Langkah 4: Integrasi Redis dengan WordPress

WordPress secara default menggunakan file-based object cache yang sangat lambat. Dengan Redis, kita bisa mempercepat WordPress secara signifikan menggunakan object caching in-memory.

Metode 1: Plugin Redis Object Cache (Direkomendasikan)

Plugin Redis Object Cache adalah cara termudah mengintegrasikan Redis dengan WordPress:

  1. Login ke WordPress Admin Dashboard
  2. Navigasi ke Plugins > Add New
  3. Cari "Redis Object Cache" oleh Till Krüss
  4. Klik Install Now kemudian Activate

Setelah plugin aktif, tambahkan konfigurasi Redis ke file wp-config.php:

sudo nano /var/www/namawebsite.com/wp-config.php

Tambahkan baris berikut sebelum baris /* That's all, stop editing! */:

// Konfigurasi Redis Object Cache
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_PASSWORD', 'PasswordRedisKuat2026!');
define('WP_REDIS_DATABASE', 0);
define('WP_REDIS_TIMEOUT', 1);
define('WP_REDIS_READ_TIMEOUT', 1);
define('WP_REDIS_MAXTTL', 86400); // Cache berlaku 24 jam

Setelah menyimpan wp-config.php, kembali ke WordPress Admin, navigasi ke Settings > Redis, dan klik tombol Enable Object Cache. Status akan berubah menjadi "Connected" jika konfigurasi berhasil.

Metode 2: Konfigurasi Manual via wp-config.php (Tanpa Plugin Tambahan)

WordPress mendukung drop-in object cache. Copy file object-cache.php dari plugin Redis Object Cache:

# Setelah menginstal plugin, salin drop-in ke direktori wp-content
sudo cp /var/www/namawebsite.com/wp-content/plugins/redis-cache/includes/object-cache.php   /var/www/namawebsite.com/wp-content/object-cache.php

sudo chown www-data:www-data /var/www/namawebsite.com/wp-content/object-cache.php

Langkah 5: Integrasi Redis sebagai Session Handler PHP

Selain object caching, Redis juga bisa menggantikan file-based session PHP yang lebih lambat. Ini sangat berguna untuk aplikasi web dengan banyak user login bersamaan:

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

Cari dan ubah konfigurasi session:

; Gunakan Redis sebagai session handler
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379?auth=PasswordRedisKuat2026!"

Restart PHP-FPM untuk menerapkan perubahan:

sudo systemctl restart php8.2-fpm
cara setup redis
Ilustrasi cara setup redis

Langkah 6: Menggunakan Redis di Kode PHP Kustom

Jika Anda mengembangkan aplikasi PHP kustom (bukan WordPress), berikut contoh penggunaan Redis dengan ekstensi php-redis:

<?php
// Buat koneksi ke Redis
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('PasswordRedisKuat2026!');

// Contoh: Cache hasil query database
$cacheKey = 'produk_terpopuler';
$cachedData = $redis->get($cacheKey);

if ($cachedData === false) {
    // Data tidak ada di cache, ambil dari database
    $data = getProdukTerpopulerDariDB(); // fungsi query database Anda

    // Simpan ke Redis dengan TTL 3600 detik (1 jam)
    $redis->setex($cacheKey, 3600, json_encode($data));

    echo json_encode($data);
} else {
    // Data tersedia di cache, gunakan langsung
    echo $cachedData;
}
?>

Pola Cache-Aside yang Umum Digunakan

<?php
function getDataDenganCache(Redis $redis, string $key, callable $fetchCallback, int $ttl = 3600): mixed {
    $cached = $redis->get($key);

    if ($cached !== false) {
        return json_decode($cached, true);
    }

    $data = $fetchCallback();
    $redis->setex($key, $ttl, json_encode($data));

    return $data;
}

// Penggunaan:
$produk = getDataDenganCache(
    $redis,
    'produk_kategori_elektronik',
    fn() => $db->query('SELECT * FROM produk WHERE kategori = "elektronik"'),
    1800 // cache 30 menit
);
?>

Langkah 7: Monitoring dan Memantau Performa Redis

Setelah Redis berjalan, penting untuk memantau kinerjanya secara berkala:

Perintah Monitoring Redis Penting

# Lihat statistik real-time Redis
redis-cli -a PasswordRedisKuat2026! INFO stats

# Lihat penggunaan memori
redis-cli -a PasswordRedisKuat2026! INFO memory

# Monitor semua perintah Redis secara real-time (hati-hati di produksi, bisa memengaruhi performa)
redis-cli -a PasswordRedisKuat2026! MONITOR

# Lihat jumlah key yang tersimpan
redis-cli -a PasswordRedisKuat2026! DBSIZE

# Lihat cache hit rate (rasio keberhasilan cache)
redis-cli -a PasswordRedisKuat2026! INFO stats | grep keyspace

Indikator Performa yang Perlu Dipantau

Metrik penting yang menentukan efektivitas Redis sebagai cache:

  • keyspace_hits vs keyspace_misses: Rasio hit/miss yang baik adalah minimal 80% hit. Jika miss terlalu tinggi, TTL cache mungkin terlalu pendek.
  • used_memory: Pastikan tidak mendekati maxmemory yang ditetapkan. Jika sering penuh, pertimbangkan menambah alokasi memori.
  • connected_clients: Jumlah koneksi aktif ke Redis. Terlalu banyak koneksi bisa menjadi bottleneck.
  • evicted_keys: Jumlah key yang dihapus paksa karena memori penuh. Nilai tinggi mengindikasikan kebutuhan memori Redis perlu ditingkatkan.

Langkah 8: Konfigurasi Firewall untuk Redis

Redis hanya perlu bisa diakses dari localhost, bukan dari internet. Pastikan UFW firewall memblokir port Redis dari akses luar:

# Pastikan port 6379 (port default Redis) TIDAK terbuka untuk umum
sudo ufw status | grep 6379

# Jika port 6379 terbuka untuk semua, tutup dengan:
sudo ufw deny 6379

# Izinkan akses Redis hanya dari localhost (sudah default jika bind ke 127.0.0.1)
# Tidak perlu rule UFW tambahan jika bind sudah dikonfigurasi ke 127.0.0.1

Langkah 9: Optimasi Redis untuk Traffic Tinggi

Untuk website dengan traffic sangat tinggi, ada beberapa penyesuaian tambahan yang bisa meningkatkan performa Redis:

sudo nano /etc/redis/redis.conf

Tambahkan atau sesuaikan konfigurasi berikut:

# Tingkatkan batas koneksi simultan
maxclients 10000

# Nonaktifkan penyimpanan data ke disk jika hanya digunakan sebagai cache murni
# (komentar semua baris "save" untuk disable persistence)
# save ""

# Aktifkan lazy freeing untuk meningkatkan performa saat banyak key dihapus
lazyfree-lazy-eviction yes
lazyfree-lazy-expire yes
lazyfree-lazy-server-del yes

# Nonaktifkan perintah berbahaya di produksi
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command DEBUG ""
rename-command CONFIG "CONFIG_ADMIN_ONLY"
sudo systemctl restart redis-server

Troubleshooting Redis: Masalah Umum dan Solusinya

Redis tidak bisa diakses (Connection refused)

Cek apakah Redis service berjalan: sudo systemctl status redis-server. Jika mati, jalankan sudo systemctl start redis-server. Cek juga file log Redis untuk pesan error: sudo tail -50 /var/log/redis/redis-server.log.

WordPress menampilkan "Unable to connect to Redis"

Pastikan password di wp-config.php sama persis dengan requirepass di redis.conf. Verifikasi koneksi manual dari command line: redis-cli -a PasswordAnda PING. Pastikan ekstensi php-redis terinstal: php -m | grep redis.

Redis menggunakan terlalu banyak memori

Periksa key dengan TTL paling lama: redis-cli -a PasswordAnda --scan | head -20. Kurangi TTL cache atau naikkan nilai maxmemory. Pertimbangkan juga untuk mengaktifkan maxmemory-policy allkeys-lru jika belum aktif.

Perbandingan: Sebelum dan Sesudah Redis

Berdasarkan pengujian pada website WordPress tipikal dengan database berisi 10.000+ produk:

  • Time to First Byte (TTFB) tanpa Redis: 800ms – 1.500ms
  • Time to First Byte (TTFB) dengan Redis: 80ms – 200ms
  • Pengurangan query database: 60% – 90% lebih sedikit query
  • Kemampuan menangani concurrent users: 3x – 10x lebih banyak

Angka-angka ini tentu bervariasi tergantung konfigurasi server, ukuran database, dan jenis konten website. Namun dalam hampir semua kasus, penambahan Redis sebagai caching layer memberikan peningkatan performa yang signifikan.

FAQ: Pertanyaan Umum tentang Setup Redis

Apa perbedaan Redis dan Memcached?

Keduanya adalah in-memory caching system, namun Redis jauh lebih kaya fitur. Redis mendukung berbagai tipe data (string, hash, list, set, sorted set), persistensi data ke disk, pub/sub messaging, dan clustering bawaan. Memcached hanya mendukung string sederhana dan tidak memiliki persistensi. Untuk kebanyakan kebutuhan modern, Redis adalah pilihan yang lebih fleksibel dan direkomendasikan.

Berapa banyak RAM yang dibutuhkan Redis?

Untuk website skala kecil hingga menengah, alokasi 256MB RAM untuk Redis sudah cukup. Website dengan traffic tinggi atau data cache yang besar mungkin membutuhkan 512MB hingga 1GB. Pantau metrik used_memory di Redis INFO untuk menentukan alokasi yang tepat. Aturan umum: mulai dari 256MB dan tingkatkan berdasarkan kebutuhan aktual.

Apakah Redis aman digunakan di shared hosting?

Redis umumnya tidak tersedia di shared hosting standar karena memerlukan akses level server. Jika Anda menggunakan shared hosting, cek apakah provider menawarkan add-on Redis - beberapa provider premium menyediakannya. Untuk kontrol penuh atas Redis, VPS atau Cloud Server adalah pilihan yang tepat. HostingEkspres menyediakan VPS dengan Redis pre-installed untuk kemudahan konfigurasi.

Bagaimana cara membersihkan cache Redis WordPress?

Ada beberapa cara: (1) Melalui plugin Redis Object Cache di WordPress Admin - klik tombol "Flush Cache". (2) Via WP-CLI: wp redis flush. (3) Langsung via Redis CLI: redis-cli -a PasswordAnda FLUSHDB (hati-hati, ini menghapus semua data di database yang aktif). Untuk keamanan, selalu gunakan opsi flush melalui WordPress agar tidak mengganggu data Redis dari aplikasi lain.

Apakah Redis perlu di-restart setiap kali server restart?

Tidak, jika Anda sudah menjalankan sudo systemctl enable redis-server, Redis akan otomatis berjalan setiap kali server di-restart. Verifikasi dengan perintah sudo systemctl is-enabled redis-server - hasilnya harus enabled.

Bisakah Redis digunakan bersama Memcached di server yang sama?

Secara teknis bisa, keduanya menggunakan port berbeda (Redis: 6379, Memcached: 11211). Namun menjalankan keduanya sekaligus berarti membagi RAM untuk dua caching system, yang tidak efisien. Pilih salah satu - untuk website modern, Redis lebih direkomendasikan karena fiturnya yang lebih lengkap.

Bagaimana Redis meningkatkan performa WordPress secara spesifik?

WordPress secara default melakukan puluhan query database untuk setiap halaman yang dimuat - mengambil opsi, widget, menu, post metadata, dan sebagainya. Dengan Redis Object Cache, semua data ini disimpan di memori setelah pertama kali diambil. Request berikutnya mengambil data langsung dari RAM (microsecond) daripada query ke database (millisecond), menghasilkan pengurangan TTFB yang dramatis terutama pada halaman dengan banyak widget dan plugin aktif.

Kesimpulan: Redis sebagai Fondasi Performa Website

Cara setup Redis yang benar adalah salah satu investasi teknis terbaik untuk website dengan traffic yang terus berkembang. Dengan mengikuti panduan ini, Anda sudah memiliki Redis yang terkonfigurasi secara aman dan optimal, terintegrasi dengan WordPress atau aplikasi PHP kustom, serta alat monitoring untuk memastikan cache berjalan efektif.

Langkah selanjutnya setelah Redis berjalan: pertimbangkan juga mengimplementasikan CDN (Content Delivery Network) untuk mendistribusikan static assets ke server yang lebih dekat dengan pengunjung, dan optimalkan konfigurasi PHP-FPM untuk memaksimalkan throughput server. Jika Anda ingin server yang sudah dikonfigurasi dengan Redis, PHP-FPM yang dioptimalkan, dan stack performa lengkap tanpa perlu setup manual, VPS HostingEkspres tersedia dengan konfigurasi siap pakai untuk website produksi.

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. Dengan subscribe, kamu setuju menerima email tips dari Hosting Ekspres. Bisa berhenti kapan saja.