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.
| Tier | Memori mesin | maxmemory |
|---|---|---|
| VDS-1 | 2 GB | 256 MB |
| VDS-2 | 4 GB | 512 MB |
| VDS-3 | 8 GB | 1–2 GB |
| VDS-5 | 24 GB | 4–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
| Gejala | Penyebab |
|---|---|
NOAUTH Authentication required | Aplikasi tidak diberi password |
OOM command not allowed | maxmemory tercapai dengan policy noeviction |
DENIED Redis is running in protected mode | Akses eksternal dengan bind 127.0.0.1 — ini memang disengaja |
| Data hilang setelah reboot | Persistensi tidak diaktifkan |
| Mesin masuk ke swap | Jumlah maxmemory dan layanan lain melebihi memori tier |
Jangan gunakan
KEYS *di server produksi: perintah ini memblokir Redis selama iterasi semua key. GunakanSCANuntuk iterasi.