Skip to content
VDS · Basis data

Redis: cache dan antrean

Memasang Redis di VDS, kata sandi dan binding ke alamat lokal, batas memori dan kebijakan eviction, serta perbedaan antara cache dan antrean.

Diperbarui 23 Agustus 2026

Redis menyimpan data di memori, itulah sebabnya Redis dipakai untuk caching, sesi, counter, dan antrean tugas. Di VPS, Redis berguna tepat selama muatannya masih masuk ke memori: working set yang lebih besar daripada memori bebas bukan lagi mempercepat, melainkan penyebab crash.

Instalasi

apt update && apt install -y redis-server        # Debian, Ubuntu
dnf install -y redis                             # AlmaLinux, CentOS Stream
systemctl enable --now redis-server
redis-cli ping

Respons PONG berarti server berjalan.

Konfigurasi wajib

File /etc/redis/redis.conf:

bind 127.0.0.1
protected-mode yes
requirepass long-random-password
maxmemory 512mb
maxmemory-policy allkeys-lru
appendonly no
systemctl restart redis-server
redis-cli -a 'password' ping

Scanner menemukan Redis tanpa password yang terbuka ke internet dalam hitungan menit dan memakainya untuk mining. Jika aplikasi Anda berada di mesin yang sama, biarkan bind 127.0.0.1 dan jangan ekspos port 6379 ke luar. Jika Anda butuh akses eksternal, gunakan hanya SSH tunnel atau VPN.

Memori dan eviction

Set maxmemory secara eksplisit: tanpa itu, Redis akan tumbuh sampai sistem mulai membunuh proses. Wajar jika Anda memberinya seperempat dari memori tier.

TierMemori mesinmaxmemory
VDS-12 GB256 MB
VDS-24 GB512 MB
VDS-38 GB1–2 GB
VDS-524 GB4–6 GB

Policy-nya bergantung pada peran:

  • cache — allkeys-lru, key lama di-evict secara diam-diam;
  • antrean tugas — noeviction, kehilangan tugas tidak dapat diterima, error saat menulis lebih baik.

Jangan campur cache dan antrean dalam satu database justru karena kontradiksi ini. Pisahkan ke nomor database berbeda (SELECT 1) atau dua instance.

Persistensi ke disk

Secara default, Redis secara berkala menulis snapshot ke dump.rdb. Untuk cache murni, ini penulisan disk yang tidak perlu — nonaktifkan save. Untuk antrean, aktifkan appendonly yes: dengan begitu tugas tidak akan hilang setelah mesin reboot.

Perlu diingat bahwa kecepatan tulis disk dibatasi oleh tier: 60 MB/s per core, tidak lebih rendah dari 60 dan tidak lebih tinggi dari 400 MB/s.

Monitoring

redis-cli -a 'password' info memory
redis-cli -a 'password' info stats
redis-cli -a 'password' --stat
redis-cli -a 'password' slowlog get 10

Metrik kuncinya adalah evicted_keys: pertumbuhan yang terus-menerus berarti memori tidak cukup dan cache tidak sepadan.

Kesalahan umum

GejalaPenyebab
NOAUTH Authentication requiredAplikasi tidak diberi password
OOM command not allowedmaxmemory tercapai dengan policy noeviction
DENIED Redis is running in protected modeAkses eksternal dengan bind 127.0.0.1 — ini memang disengaja
Data hilang setelah rebootPersistensi tidak diaktifkan
Mesin masuk ke swapJumlah maxmemory dan layanan lain melebihi memori tier

Jangan gunakan KEYS * di server produksi: perintah ini memblokir Redis selama iterasi semua key. Gunakan SCAN untuk iterasi.