Redis — caching in-memory untuk situs web dan toko
Redis adalah lapisan kecepatan di balik website, toko, dan marketplace yang dibangun di 4buildsite: ia menyimpan di memori (RAM) persis data yang harus disajikan dengan cepat — halaman cache, sesi, keranjang, rate limit — dan melayaninya tanpa query ulang ke database. PostgreSQL tetap menjadi sumber kebenaran; Redis melindunginya saat trafik tinggi. Redis sudah termasuk dan dikelola oleh platform, tanpa konfigurasi apa pun dari Anda.
Apa itu Redis dan mengapa begitu cepat
Redis (REmote DIctionary Server) adalah database in-memory open-source: ia menyimpan data di RAM, bukan di disk, sehingga data dilayani langsung dari memori. Di 4buildsite kami memakainya sebagai lapisan akselerasi di depan PostgreSQL — untuk semua yang harus disajikan dengan cepat: halaman, sesi, keranjang, dan rate limit.
Berbeda dengan disk, RAM jauh lebih cepat berkali-kali lipat, dan Redis menambahkan struktur data native (string, hash, list, set, sorted set, stream) yang memungkinkan operasi kompleks langsung di memori, tanpa round-trip ke database utama. Pemrosesan perintah bersifat single-threaded, sehingga perilakunya dapat diprediksi dan bebas dari race condition.
- Operasi berbasis memori (RAM) pada satu node
- Struktur native: hash untuk sesi, sorted set untuk leaderboard dan rate limiting, stream untuk antrean
- Single-threaded pada perintah → perilaku dapat diprediksi, tanpa locking yang rumit
Caching: halaman dan data Anda, disajikan dari cache
Strateginya adalah cache-aside: permintaan pertama membaca dari PostgreSQL dan menyimpan hasilnya di Redis dengan TTL (time to live); permintaan berikutnya mengambilnya langsung dari memori. Saat Anda mengedit halaman, kuncinya diinvalidasi secara eksplisit — kami tidak pernah menyajikan data usang lewat TTL buta.
Untuk website company profile atau toko, ini berarti daftar produk, menu, halaman populer, dan fragmen konten dikirim dari cache bahkan saat trafik tinggi, sehingga beban database berkurang. Pada saat puncak (kampanye, Black Friday), Redis menyerap permintaan berulang sehingga lebih sedikit permintaan sampai ke database.
- Cache-aside dengan invalidasi eksplisit — tanpa data usang
- Menyimpan cache fragmen halaman dan hasil query, bukan hanya halaman utuh
- Melindungi PostgreSQL saat trafik memuncak, dengan menyerap permintaan berulang
Sesi, keranjang belanja, dan perlindungan anti-penyalahgunaan
Sesi pengguna dan refresh token disimpan di Redis: autentikasi, kedaluwarsa otomatis lewat TTL, dan pencabutan di semua perangkat saat seseorang logout atau mengganti kata sandi.
Keranjang belanja pada toko yang dibangun di 4buildsite disimpan di Redis untuk pengunjung yang belum login — dengan masa kedaluwarsa, tanpa membebani database utama. Redis juga menerapkan rate limiting pada formulir kontak dan login memakai sorted set, menghentikan spam dan upaya brute-force sebelum mencapai database.
- Session store dengan kedaluwarsa otomatis dan pencabutan token selektif
- Keranjang persisten dengan TTL untuk pengunjung anonim
- Rate limiting dan anti-penyalahgunaan pada formulir dan autentikasi
Real-time dan antrean job latar belakang
Redis Pub/Sub dan Streams menggerakkan pembaruan real-time: stok berkurang secara langsung, notifikasi in-app, status pesanan yang berubah — semuanya tanpa pengunjung me-refresh halaman dan tanpa polling berulang yang membebani server.
Tugas berat (memproses gambar, membuat ekspor, sinkronisasi) masuk ke antrean Redis dan dijalankan oleh worker latar belakang, sehingga pengunjung tidak perlu menunggu tugas selesai. Mekanisme distributed locking menjamin operasi kritis tidak berjalan dua kali.
- Pub/Sub dan Streams untuk event langsung (stok, pesanan, notifikasi)
- Antrean job untuk pemrosesan berat yang dijalankan secara asinkron
- Distributed locking untuk operasi yang tidak boleh berjalan dua kali
Kelebihan dan keterbatasan
Kelebihan
- Data cache disajikan dari memori, tanpa query ke database
- Mengurangi beban PostgreSQL secara drastis saat trafik tinggi
- Struktur native untuk sesi, keranjang, rate limiting, dan leaderboard
- Pub/Sub dan Streams untuk fitur real-time, tanpa polling
- Antrean job untuk pemrosesan berat, tanpa memblokir pengunjung
- Sudah termasuk dan dikelola platform — tanpa konfigurasi dari Anda
Keterbatasan
- Data berada di RAM, yang lebih mahal daripada disk → tidak untuk volume data "dingin" yang sangat besar
- Ini adalah lapisan cache / pendukung, bukan sumber kebenaran — data permanen tetap di PostgreSQL
- Persistensi (RDB/AOF) mengurangi, tetapi tidak sepenuhnya menghilangkan, risiko kehilangan beberapa detik terakhir saat crash
- Membutuhkan strategi invalidasi yang benar, jika tidak dapat menyajikan data usang
Kesimpulan singkat
Gunakan Redis untuk semua yang harus disajikan dengan cepat — caching, sesi, keranjang, rate limiting, real-time, dan antrean job. Jangan gunakan sebagai penyimpanan data utama; itu tugas PostgreSQL. Di 4buildsite Anda mendapatkan keduanya, terhubung otomatis: Anda tidak perlu memilih atau mengonfigurasi apa pun.
Tabel spesifikasi
| Kemampuan | Detail | Penggunaan di builder |
|---|---|---|
| Latensi | In-memory (RAM) | Halaman dan data disajikan dari memori |
| Throughput | Throughput tinggi per node | Trafik tinggi tanpa database kewalahan |
| Struktur data | string, hash, list, set, sorted set, stream | Sesi, keranjang, leaderboard, antrean, rate limiting |
| Persistensi | Snapshot RDB + log AOF | Pemulihan cepat setelah restart |
| Kedaluwarsa | TTL per kunci | Keranjang, sesi, dan cache yang membersihkan diri |
| Real-time | Pub/Sub + Streams | Stok langsung, notifikasi, status pesanan |
Redis (cache) vs. hanya database
| Kriteria | Dengan Redis | Hanya PostgreSQL |
|---|---|---|
| Waktu respons untuk data berulang | dari memori, tanpa query ulang ke database | satu query ke database pada setiap permintaan |
| Saat trafik tinggi | database terlindungi, mudah diskalakan | database tersendat, berisiko timeout |
| Keranjang dan sesi | dengan kedaluwarsa otomatis | tabel yang terus membesar dan membebani database |
| Real-time | Pub/Sub dan Streams native | polling berulang, mahal |
| Antrean job | native, mudah digunakan | solusi seadanya atau tidak ada |
Pertanyaan yang sering diajukan
Singkatnya, apa itu Redis?
Database in-memory yang sangat cepat, dipakai sebagai lapisan cache, sesi, dan real-time di depan database utama. Ia melayani data langsung dari memori.
Mengapa tidak memakai PostgreSQL saja?
PostgreSQL adalah sumber kebenaran (data yang tahan lama), tetapi Redis menyajikan data berulang langsung dari memori dan mengambil alih keranjang, sesi, rate limiting, dan real-time, sehingga melindungi database saat trafik tinggi. Keduanya bekerja bersama.
Apakah data hilang jika Redis mati?
Bukan konten situs Anda: data permanen ada di PostgreSQL. Redis hanya menyimpan cache dan data sementara, dan persistensi RDB/AOF mengurangi kehilangan.
Apakah saya harus mengonfigurasi Redis sendiri?
Tidak. Redis sudah termasuk dan dikelola oleh platform 4buildsite; Anda mendapatkan fitur real-time tanpa perlu mengadministrasi apa pun.
Bagaimana Redis membantu toko online?
Keranjang untuk pengunjung, daftar produk yang di-cache, stok yang diperbarui langsung, dan perlindungan anti-penyalahgunaan pada checkout dan formulir — semuanya dengan beban database yang lebih rendah.
Apakah Redis membantu SEO dan Core Web Vitals?
Ya, secara tidak langsung: waktu respons server yang lebih rendah dapat memengaruhi TTFB dan metrik Core Web Vitals.