Kodeloka
  1. Kodeloka
  2. Kelas Redis
  3. Materi

Data Types ยท Modul 5 dari 21

Expiration & Time To Live (TTL)

Mengatur masa berlaku data otomatis (Cache Eviction) menggunakan EXPIRE, TTL, PTTL, PERSIST, dan kombinasi SET EX/PX.

๐Ÿ“Œ 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.

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 maxmemory tercapai, Redis dapat menghapus key kadaluarsa atau key yang paling jarang diakses berdasarkan kebijakan seperti allkeys-lru (Least Recently Used) atau volatile-ttl.