Lewati ke isi

Server & Infrastruktur

Cara Pasang Redis untuk Cache Aplikasi di VPS

Langkah memasang Redis di VPS Ubuntu sebagai cache aplikasi: batas memori, kebijakan eviction, password, dan cara memastikan cache benar-benar bekerja.

Terbit 5 menit baca

Jawaban singkat

Pasang paket redis-server, biarkan Redis hanya mendengarkan localhost, tetapkan maxmemory dan kebijakan allkeys-lru agar cache tidak menghabiskan RAM, aktifkan password, lalu hubungkan aplikasi dan pantau rasio hit dari INFO stats.

Daftar isi
  1. Kapan Redis layak dipakai sebagai cache?
  2. Bagaimana langkah memasang dan mengatur Redis?
  3. 1. Pasang paket redis-server
  4. 2. Pastikan hanya mendengarkan localhost
  5. 3. Tetapkan batas memori
  6. 4. Matikan penyimpanan ke disk bila murni cache
  7. 5. Pasang password
  8. 6. Restart dan uji
  9. 7. Hubungkan aplikasi
  10. 8. Pantau apakah cache efektif
  11. Setelan apa saja yang perlu dicek ulang?
  12. Pertanyaan yang sering diajukan
  13. Checklist singkat

Aplikasimu terasa lambat karena query database yang sama dijalankan berulang-ulang? Redis bisa menyimpan hasil query, sesi login, atau potongan halaman di RAM, sehingga permintaan berikutnya dijawab dalam hitungan milidetik tanpa menyentuh database.

Memasangnya di VPS cukup mudah. Bagian yang sering terlewat justru pengaturannya: tanpa batas memori, Redis bisa terus membesar, dan tanpa pengamanan, ia bisa terbuka ke internet. Panduan ini memakai Ubuntu 24.04, tapi langkahnya mirip di Debian.

Kapan Redis layak dipakai sebagai cache?

Redis paling terasa manfaatnya saat ada data yang sering dibaca tapi jarang berubah. Contohnya daftar kategori produk, hasil perhitungan laporan, sesi login pengguna, atau respons API pihak ketiga yang dibatasi kuotanya. Data seperti ini cukup dihitung sekali, disimpan dengan masa berlaku (TTL), lalu dibaca dari RAM berkali-kali.

Sebaliknya, kalau lambatnya aplikasi berasal dari query yang tidak memakai indeks atau kode yang memanggil database ratusan kali per halaman, Redis hanya menutupi gejala. Perbaiki dulu sumbernya, baru tambahkan cache untuk bagian yang memang berat.

Bagaimana langkah memasang dan mengatur Redis?

1. Pasang paket redis-server

sudo apt update
sudo apt install -y redis-server
redis-server --version

Paket bawaan Ubuntu 24.04 membawa Redis seri 7.0, yang sudah cukup untuk kebutuhan cache. Bila kamu butuh versi terbaru, Redis menyediakan repositori apt resmi di packages.redis.io. Perhatikan juga soal lisensi Redis yang berubah dalam beberapa tahun terakhir; ringkasannya ada di Redis atau Valkey.

2. Pastikan hanya mendengarkan localhost

Buka file konfigurasi:

sudo nano /etc/redis/redis.conf

Cek dua baris ini (biasanya sudah menjadi bawaan paket):

bind 127.0.0.1 -::1
protected-mode yes

Kalau aplikasi dan Redis ada di VPS yang sama, biarkan seperti itu. Redis tidak dirancang untuk diekspos langsung ke internet, dan dokumentasi keamanannya menegaskan hal yang sama. Kalau aplikasi ada di server lain, lihat panduan mengunci Redis agar tidak terbuka publik.

3. Tetapkan batas memori

Ini langkah terpenting untuk cache. Tambahkan atau ubah:

maxmemory 256mb
maxmemory-policy allkeys-lru

Dengan allkeys-lru, saat memori mencapai batas, Redis membuang kunci yang paling lama tidak dipakai. Perilaku ini memang yang diinginkan untuk cache. Kebijakan bawaan noeviction justru membuat perintah tulis gagal ketika memori penuh, yang cocok untuk data penting tapi tidak untuk cache.

Pilih angka maxmemory dengan menyisakan RAM untuk web server, PHP atau runtime aplikasi, database, dan sistem operasi. Di VPS 2 GB, 256 sampai 512 MB biasanya titik awal yang wajar.

4. Matikan penyimpanan ke disk bila murni cache

Redis bawaan menyimpan snapshot ke disk secara berkala. Untuk data cache yang boleh hilang, ini hanya menambah beban disk. Bila Redis hanya dipakai sebagai cache:

save ""
appendonly no

Jangan lakukan ini bila Redis juga menyimpan antrean job atau sesi yang tidak boleh hilang saat restart. Dalam kasus itu, biarkan persistence aktif atau pisahkan instance cache dan instance data.

5. Pasang password

Meski hanya mendengarkan localhost, password menambah lapisan bila ada proses lain di server yang bermasalah:

requirepass ganti-dengan-password-panjang-acak

Redis 6 ke atas juga mendukung ACL untuk membuat user dengan hak terbatas, berguna bila beberapa aplikasi berbagi satu Redis.

6. Restart dan uji

sudo systemctl restart redis-server
sudo systemctl enable redis-server
redis-cli

Di prompt redis-cli, ketik AUTH password-kamu, lalu PING. Jawaban PONG berarti Redis siap. Cek juga log dengan sudo journalctl -u redis-server untuk melihat peringatan saat start.

7. Hubungkan aplikasi

Setiap framework punya cara sendiri, tapi parameternya sama: host 127.0.0.1, port 6379, dan password. Beberapa contoh:

  • PHP: pasang ekstensi php-redis (misalnya sudo apt install php-redis) lalu restart PHP-FPM.
  • Laravel: atur driver cache dan sesi ke redis di file .env, lalu isi REDIS_HOST, REDIS_PASSWORD, dan REDIS_PORT.
  • WordPress: pakai plugin object cache untuk Redis. Bedanya page cache dan object cache dijelaskan di cache WordPress dan Redis.
  • Node.js atau Python: gunakan pustaka klien resmi atau yang populer di ekosistemnya, dengan URL seperti redis://:password@127.0.0.1:6379/0.

8. Pantau apakah cache efektif

redis-cli -a password-kamu INFO stats | grep keyspace
redis-cli -a password-kamu INFO memory | grep used_memory_human

Bandingkan keyspace_hits dengan keyspace_misses. Kalau miss jauh lebih banyak dari hit, aplikasi mungkin menyimpan data yang jarang dibaca ulang, atau masa berlaku (TTL) terlalu pendek. Kalau evicted_keys terus naik dengan cepat, maxmemory mungkin terlalu kecil.

Setelan apa saja yang perlu dicek ulang?

SetelanNilai untuk cacheAlasan
bind127.0.0.1 -::1Tidak terbuka ke jaringan
protected-modeyesLapisan pengaman bawaan
maxmemorySesuai sisa RAMMencegah RAM habis
maxmemory-policyallkeys-lruBuang data lama otomatis
save / appendonly"" / noData cache boleh hilang
requirepassPassword acakLapisan autentikasi

Pertanyaan yang sering diajukan

Berapa RAM yang dibutuhkan Redis?

Redis sendiri ringan; kebutuhan RAM-nya hampir sama dengan jumlah data yang kamu simpan ditambah sedikit overhead. Batas maxmemory yang menentukan pemakaian maksimalnya.

Apakah Redis bisa menggantikan database?

Untuk cache, tidak perlu. Simpan data utama tetap di database seperti MySQL atau PostgreSQL, lalu jadikan Redis lapisan cepat di depannya.

Apa yang terjadi bila Redis mati?

Bila hanya dipakai sebagai cache, aplikasi yang ditulis dengan baik akan kembali membaca dari database, hanya lebih lambat. Uji perilaku ini sebelum produksi.

Apakah swap membantu bila RAM untuk Redis kurang?

Swap mencegah server langsung kehabisan memori, tapi Redis yang terkena swap menjadi sangat lambat. Lebih baik turunkan maxmemory atau tambah RAM. Pertimbangannya ada di artikel swap di VPS kecil.

Checklist singkat

  • Redis hanya mendengarkan localhost dan protected-mode aktif.
  • maxmemory dan allkeys-lru sudah diatur.
  • Password terpasang dan aplikasi berhasil terhubung.
  • Rasio hit dan memori dipantau beberapa hari pertama.

Sumber & referensi

Baca juga