Latar Belakang
Pada artikel sebelumnya kita sudah tahu bahwa caching dapat mempercepat aplikasi dengan cara menghindari pengambilan data berulang dari database.
Namun muncul pertanyaan baru:
Kenapa harus Redis?
Kenapa tidak pakai variabel biasa di server saja?
Cache manual hanya tersimpan di dalam program:
-
Hilang saat server restart
-
Tidak bisa dipakai banyak server
-
Tidak bisa diatur masa aktifnya
Di aplikasi nyata (production), server biasanya lebih dari satu.
Artinya cache harus berada di tempat terpisah yang bisa diakses semua server.
Di sinilah Redis digunakan.
Analogi: Meja Catatan Kasir
Bayangkan supermarket besar memiliki banyak kasir.
Setiap kasir butuh data harga barang.
Tanpa Redis
Setiap kasir pergi ke gudang menanyakan harga barang.
Gudang kewalahan.
Dengan Redis
Supermarket menaruh meja catatan harga di tengah ruangan.
Semua kasir cukup melihat meja itu.
➡️ Gudang = Database
➡️ Kasir = Server
➡️ Meja Catatan = Redis
Redis bukan pengganti database, tetapi penyangga untuk cepat ditengah.
Apa Itu Redis
Redis adalah database NoSQL berbasis In-Memory Key-Value Store
Artinya:
-
Data disimpan di RAM
-
Diakses menggunakan kunci (key)
-
Super cepat dibaca
Contoh konsep:
Kenapa Redis Sangat Cepat
Karena Redis tidak membaca disk.
Perbandingan kira-kira:
Redis bekerja hampir secepat program membaca variabel biasa.
Struktur Data di Redis
Berbeda dengan cache biasa, Redis tidak hanya menyimpan string.
Redis punya banyak tipe data:
sama seperti tipe data pada database, tapi juga data structure server.
Teori: Key-Value Store vs Relasional
Berbeda dengan database relasional:
Kalau SQL, mencari data :
SELECT * FROM users WHERE username = 'abil';
Kalau Redis, langsung mengambil berdasarkan alamatnya :
GET user:abil
maka dari itu redis sangat cepat.
pertama, install redis dulu:
kedua, masuk redis-cli:
ketiga, buat username:abil dan kasih session login:
Kalau diibaratkan:
Redis itu lemari loker,
"user:username" = nomor loker
"abil" = isi loker
Kenapa pakai tanda :
user:username adalah penamaan key (naming convention)
Tujuannya biar rapi:
| Key | Arti |
|---|---|
| user:username | username user |
| user:1 | data user id 1 |
| session:abil | session login |
| cart:abil | keranjang belanja |
Redis tidak punya tabel → jadi kita buat struktur sendiri lewat nama key
jika berhasil akan muncul "OK".
Apa yang Terjadi Saat GET?
Redis tidak mencari data seperti database SQL.
Database SQL:
cari di tabel → cari baris → cocokkan id → kirim hasil
Redis:
langsung lompat ke alamat key di memory
Makanya Redis sangat cepat
Ringkasnya: Key=Value
Kesimpulan
Dari praktik di atas, kita mempelajari dua fondasi utama Redis:
Konsep Key-Value (SET/GET): Redis tidak melakukan pencarian rumit seperti SQL (tabel/baris/kolom). Ia langsung menuju "alamat" data di memori. Ini membuat akses data terasa instan.
Struktur HASH: Redis tidak hanya menyimpan string sederhana. Dengan
HASH, kita bisa menyimpan objek kompleks (seperti profil user) dalam satu key. Ini memungkinkan kita mengambil hanya sebagian data yang dibutuhkan (misal: hanya ambil 'nama' tanpa ambil 'foto profil'), yang membuat aplikasi jauh lebih efisien dibanding memuat seluruh baris dari database.
Redis bukanlah pengganti database utama, melainkan penyangga yang membuat aplikasi Anda mampu menangani ribuan request per detik dengan ringan.
Daftar Pustaka
Redis Documentation. (n.d.). Introduction to Redis. Redis.io. Diakses dari https://redis.io/docs/about/
Carlson, J. L. (2013). Redis in Action. Manning Publications.
Xu, Y. (2022). System Design Interview – An Insider's Guide: Understanding Distributed Cache. Independently published.
Nielsen, F. (2020). Redis: The Complete Guide to the High-Performance Key-Value Store. O'Reilly Media.
.png)