Redis adalah in-memory data store yang menyimpan data langsung di RAM - bukan di disk - sehingga operasi baca/tulisnya bisa ratusan kali lebih cepat dari database biasa. Biasa dipakai sebagai cache, session storage, atau message broker.

Apa itu Redis?

Redis (Remote Dictionary Server) adalah data store open-source yang menyimpan semua datanya di RAM (memory), bukan di disk seperti database konvensional. Ini yang bikin Redis luar biasa cepat - latensinya bisa di bawah 1 milidetik, dan throughput-nya bisa mencapai jutaan operasi per detik dalam kondisi yang tepat.

Redis dibuat oleh Salvatore Sanfilippo pada 2009, awalnya untuk mengatasi masalah performa di platform social media Italia. Sekarang Redis dipakai oleh hampir semua perusahaan teknologi besar - dari Twitter sampai GitHub sampai Stack Overflow - sebagai lapisan data yang cepat di antara aplikasi dan database utama.

Tipe Data yang Didukung Redis

Ini yang bikin Redis beda dari in-memory cache sederhana lainnya - Redis bukan sekadar key-value store. Redis mendukung berbagai struktur data:

Tipe DataDeskripsiContoh Use Case
StringNilai teks atau binaryCache HTML, session token
HashMap dari field ke valueUser session data, profil user
ListLinked list dengan orderMessage queue, activity feed
SetKumpulan nilai unik tanpa duplikatTag, unique visitors
Sorted SetSet dengan score numerikLeaderboard, rate limiting
BitmapBit array yang efisienFeature flags, analitik kehadiran
HyperLogLogEstimasi cardinalityUnique page views (aproximasi)
StreamAppend-only log terstrukturEvent streaming, audit log

Redis sebagai Cache: Pola Paling Umum

Use case paling umum Redis adalah sebagai cache layer di depan database utama. Polanya seperti ini:

  1. Request masuk ke aplikasi
  2. Aplikasi cek Redis dulu - apakah data sudah ada di cache (cache hit)?
  3. Kalau ada di Redis, langsung kembalikan data tanpa query ke database
  4. Kalau tidak ada (cache miss), query ke database, simpan hasilnya ke Redis dengan TTL (time-to-live), baru kembalikan ke user

Dengan pola ini, response time aplikasi bisa turun drastis karena mayoritas request dilayani dari RAM yang super cepat, bukan dari disk.

Redis Persistence

Meskipun data disimpan di RAM, Redis punya beberapa mekanisme persistence supaya data tidak hilang kalau server restart:

MekanismeCara KerjaTrade-off
RDB SnapshotDump data ke disk secara periodikBisa kehilangan data sejak snapshot terakhir
AOF (Append-Only File)Tulis setiap operasi ke log fileLebih aman tapi file lebih besar dan recovery lebih lambat
RDB + AOFKombinasi keduanyaPaling aman, direkomendasikan untuk production
No persistenceData hanya di RAMTercepat, tapi hilang kalau restart

Untuk use case cache murni, biasanya tidak perlu persistence - kalau Redis restart, cache tinggal diisi ulang dari database. Tapi untuk session storage atau job queue, persistence penting supaya data tidak hilang.

Redis vs Alternatif Cache

AspekRedisMemcachedDynamoDB DAX
Tipe dataKaya (8+ tipe)Hanya stringKey-value
PersistenceOpsionalTidak adaManaged
Pub/Sub messagingBuilt-inTidak adaTidak ada
ClusteringBuilt-in (Redis Cluster)Client-sideManaged
LisensiOpen-source (SSPL)Open-source (BSD)Proprietary/berbayar
Lua scriptingYaTidakTidak

Use Case Redis Lainnya

Selain cache, Redis sering dipakai untuk:

Session storage: Simpan data sesi login user dengan TTL otomatis. Lebih cepat dari menyimpan session di database, dan mudah di-scale horizontal.

Rate limiting: Pakai Sorted Set atau atomic INCR untuk membatasi berapa kali user boleh hit endpoint tertentu dalam window waktu tertentu.

Message broker sederhana: Dengan Pub/Sub atau Streams, Redis bisa jadi message broker ringan untuk komunikasi antar service.

Leaderboard real-time: Sorted Set Redis sangat cocok untuk leaderboard - cukup update score, dan Redis otomatis menjaga urutan.

Redis di NgulikData

NgulikData pakai Redis (via library ioredis) untuk beberapa hal sekaligus: caching status premium user supaya nggak perlu query Supabase setiap request, dan caching response API yang sering diakses. Ini yang bikin halaman di NgulikData bisa load cepat meski traffic sedang tinggi.

Lanjut Latihan

Udah paham Redis? Lanjut latihan SQL dan Excel yuk!

Latihan interaktif, langsung di browser.

Mulai Latihan →