
Masalah Botol Leher (Bottleneck) di Database
Di artikel arsitektur sebelumnya, kita bahas bahwa setiap request ke Server akan diteruskan ke Database (misal: PostgreSQL/MySQL). Database SQL sangat aman, tapi ada satu masalah besar: Ia menyimpan datanya di Hard Disk / SSD fisik server.
Ketika ribuan pengunjung mencari "Harga Emas Hari Ini", database harus membongkar Hard Disk, mencari data, lalu merakitnya berulang-ulang. Proses bongkar muat Hard Disk ini tergolong lambat dan bisa membuat *server* kelebihan beban. Di sinilah Redis datang menyelamatkan.
Apa itu Redis?
Redis (Remote Dictionary Server) pada dasarnya adalah Database juga, namun dengan satu perbedaan gila: Redis TIDAK menyimpan data di Hard Disk, melainkan langsung di dalam RAM (Memori Utama)!
Kecepatan membaca data dari RAM ribuan kali lipat lebih cepat daripada membaca SSD terbaik sekalipun. Redis menyimpan datanya dalam format simpel berupa Key-Value (Kunci-Nilai), persis seperti Object JavaScript.
Cara Kerja Redis (Sebagai Caching)
Perusahaan raksasa jarang menggunakan Redis sebagai tempat penyimpanan utama karena jika server mati/restart mendadak, data di RAM akan hilang. Mereka menggunakannya sebagai Caching Layer (Lapisan Singgah).
Alurnya seperti ini:
- User A meminta data "Harga Emas". Backend mencari ke Redis. Karena kosong (Cache Miss), Backend menembus masuk ke database SQL yang lambat, mengambil harganya, memberikannya ke User A, LALU menitipkan fotokopi harga itu ke RAM Redis selama 10 menit ke depan.
- User B, C, dan D sedetik kemudian meminta data "Harga Emas" yang sama.
- Backend mencari ke Redis. Kali ini datanya ADA! Backend langsung memberikan data dari RAM Redis ke User tanpa perlu mengganggu database SQL sama sekali (Cache Hit). Respon API yang tadinya butuh 500 milidetik, kini selesai hanya dalam 5 milidetik!
Fungsi Lain Redis
Karena sangat cepat, *Software Engineer* juga sering mengeksploitasi Redis untuk hal-hal yang butuh kecepatan eksekusi tinggi (sementara), seperti:
- Menyimpan dan mengelola Session Login pengunjung.
- Membuat sistem antrean tugas (Message Queue/Job Queue) untuk memproses ribuan pengiriman email OTP tanpa membuat server utama lemot.
- Sistem Leaderboard (Papan Peringkat *Game* secara Real-Time).
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates