Kodeloka
  1. Kodeloka
  2. Kelas Redis
  3. Materi

Data Types ยท Modul 7 dari 21

Tipe Data List & Message Queuing

Mengimplementasikan Queue (FIFO) & Stack (LIFO) menggunakan Redis List (LPUSH, RPUSH, LPOP, RPOP, LRANGE, LLEN).

๐Ÿ“Œ Ringkasan Eksekutif Modul:
Redis List diimplementasikan sebagai Doubly-Linked List. Penambahan data di ujung kiri (head) atau kanan (tail) memiliki kompleksitas waktu super cepat O(1).

1. Konsep Redis List

Redis List adalah urutan elemen string yang diurutkan berdasarkan urutan penyisipan. Di balik layar, Redis menggunakan struktur Doubly-Linked List (atau quicklist), sehingga penambahan/penghapusan elemen di awal (head) maupun di akhir (tail) beroperasi dalam kompleksitas konstan $O(1)$.

2. Pola Implementasi Data Structure:

  • Queue (FIFO - First In First Out): Masukkan data dengan RPUSH di ekor, ambil data dengan LPOP di kepala. (Dipakai untuk Async Background Job Process).
  • Stack (LIFO - Last In First Out): Masukkan data dengan LPUSH di kepala, ambil data dengan LPOP di kepala.
  • Capped Timeline / Recent Items: Batasi jumlah elemen list menggunakan LTRIM (misal hanya menyimpan 100 aktivitas terakhir).

3. Perintah Manipulasi List

redis-cli
# Menambahkan elemen dari Kiri (Head) atau Kanan (Tail)
LPUSH queue:jobs "send_email_job_1" "send_email_job_2"
RPUSH queue:jobs "process_video_job_3"

# Membaca elemen List (Range 0 hingga -1 berarti SEMUA elemen)
LRANGE queue:jobs 0 -1
LRANGE queue:jobs 0 1   # Mengambil elemen index 0 dan 1

# Pop (Mengambil sekaligus menghapus elemen)
LPOP queue:jobs         # Mengambil elemen paling kiri (Head)
RPOP queue:jobs         # Mengambil elemen paling kanan (Tail)

# Menghitung panjang List
LLEN queue:jobs

# Mengambil elemen berdasarkan Index tertentu
LINDEX queue:jobs 0