๐ 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).
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
RPUSHdi ekor, ambil data denganLPOPdi kepala. (Dipakai untuk Async Background Job Process). - Stack (LIFO - Last In First Out): Masukkan data dengan
LPUSHdi kepala, ambil data denganLPOPdi 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