๐ Ringkasan Eksekutif Modul:
Key di Redis dapat diset agar terhapus otomatis setelah batas waktu tertentu. Sangat cocok untuk Caching, OTP Token, Rate Limiter, dan Session Timeout.
Key di Redis dapat diset agar terhapus otomatis setelah batas waktu tertentu. Sangat cocok untuk Caching, OTP Token, Rate Limiter, dan Session Timeout.
1. Konsep Key Expiration (TTL)
Salah satu fitur paling powerful di Redis adalah kemampuan mengatur Time To Live (TTL) pada suatu key. Setelah durasi waktu (dalam detik atau milidetik) tercapai, Redis akan secara otomatis menghapus key tersebut dari memori tanpa bantuan cronjob eksternal.
2. Perintah Manipulasi Expiration
redis-cli
# 1. Menyetel TTL pada key yang sudah ada (dalam detik)
SET session:user:99 "token_secret_abc"
EXPIRE session:user:99 60 # Berlaku selama 60 detik
# 2. Memeriksa sisa waktu TTL
TTL session:user:99 # Mengembalikan sisa detik (misal: 45)
# 3. Menyetel data sekaligus TTL atomic dalam 1 command (BEST PRACTICE)
SET otp:user:99 "849201" EX 300 # Expire 300 detik (5 menit)
SET cache:product:1 "JSON..." PX 10000 # Expire 10000 milidetik (10 detik)
# 4. Menghapus status expiration (membuat key persisten kembali)
PERSIST session:user:99
3. Arti Nilai Kembalian Perintah TTL
> 0: Jumlah detik tersisa sebelum key terhapus otomatis.-1: Key ada di database, tetapi TIDAK memiliki batas kadaluarsa (persisten selamanya).-2: Key TIDAK ditemukan di database (sudah terhapus atau belum pernah dibuat).
โ๏ธ Strategi Eviction Memori (MaxMemory Policy):
Jika RAM server Redis penuh dan batas
Jika RAM server Redis penuh dan batas
maxmemory tercapai, Redis dapat menghapus key kadaluarsa atau key yang paling jarang diakses berdasarkan kebijakan seperti allkeys-lru (Least Recently Used) atau volatile-ttl.