# Redis Adalah: Pengertian, Cara Kerja, dan Contohnya

> Redis adalah penyimpanan data di memori yang mempercepat aplikasi. Pahami tipe data, cara kerja sebagai cache, persistence, keamanan, dan contoh pemakaiannya.

**URL:** https://www.ciptadusa.com/blog/redis-adalah  
**Type:** blog  
**Author:** PT Cipta Dua Saudara  
**Category:** Teknologi  
**Published:** 2026-11-13  
**Cover:** https://www.ciptadusa.com/media/uploads/blog/2026-11/1794561806926-redis-adalah-20261113.webp  

## Article

Redis adalah penyimpanan data di memori (in-memory data store) yang banyak dipakai untuk mempercepat aplikasi. Dokumentasi resmi Redis menyebut Redis dipakai jutaan developer sebagai cache, vector database, document database, streaming engine, dan message broker, dengan replikasi bawaan dan beberapa tingkat penyimpanan ke disk ([sumber](https://redis.io/docs/latest/get-started/)).

Karena datanya ada di RAM, Redis bisa menjawab jauh lebih cepat daripada database yang membaca dari disk. Itu sebabnya Redis sering dipasang di antara aplikasi dan database utama. Artikel ini membahas pengertian Redis, tipe datanya, cara kerja Redis sebagai cache, persistence, fitur lain seperti pub/sub, keamanan, contoh pemakaian, dan kapan bisnis perlu memakainya.

## Pengertian Redis

Redis menggambarkan dirinya sebagai data structure server: inti Redis adalah sekumpulan tipe data bawaan yang membantu menyelesaikan banyak masalah, mulai dari caching, antrean (queue), sampai pemrosesan event ([sumber](https://redis.io/docs/latest/develop/data-types/)). Redis mendukung tipe data kompleks seperti strings, hashes, lists, sets, sorted sets, dan JSON, dengan operasi atomik di setiap tipe data itu ([sumber](https://redis.io/docs/latest/get-started/)). Proyek open source Redis sudah berjalan sejak 2009 ([sumber](https://redis.io/docs/latest/get-started/)).

Perbedaan utama Redis dengan database relasional seperti MySQL atau PostgreSQL: Redis menyimpan data di memori dan diakses lewat key, bukan lewat tabel dan query SQL. Karena itu Redis cocok untuk data yang sering dibaca dan harus cepat, tetapi biasanya bukan pengganti database utama.

## Tipe Data di Redis

Berikut tipe data utama yang dijelaskan di dokumentasi Redis ([sumber](https://redis.io/docs/latest/develop/data-types/)):

| Tipe data | Penjelasan | Contoh pemakaian (ilustrasi CDS) |
|---|---|---|
| Strings | Tipe data paling dasar, berupa urutan byte | Cache halaman, token sesi, penghitung |
| Hashes | Kumpulan pasangan field-value, mirip dictionary di Python | Profil pengguna, isi keranjang belanja |
| Lists | Daftar string yang diurutkan sesuai urutan masuk | Antrean pekerjaan sederhana |
| Sets | Kumpulan string unik tanpa urutan; tambah, hapus, dan cek keberadaan dalam waktu O(1) | Daftar pengguna yang sudah membaca notifikasi |
| Sorted sets | Kumpulan string unik yang diurutkan berdasarkan skor | Leaderboard, produk terlaris |
| Streams | Struktur data seperti log yang hanya bisa ditambah, untuk mencatat event sesuai urutan kejadian | Log aktivitas, event pesanan |

Selain itu, Redis juga punya JSON, bitmaps, tipe data probabilistik, time series, dan vector sets ([sumber](https://redis.io/docs/latest/develop/data-types/)).

## Cara Kerja Redis sebagai Cache

Pola yang paling sering dipakai tim CDS adalah cache-aside: aplikasi mengecek Redis dulu, dan hanya mengambil dari database jika data belum ada di cache. Alurnya seperti ini (panduan internal CDS):

1. Pengguna membuka halaman produk. Aplikasi mencari data produk di Redis dengan key tertentu, misalnya `produk:1001`.
2. Jika data ada di Redis (cache hit), aplikasi langsung memakainya. Database tidak disentuh.
3. Jika data belum ada (cache miss), aplikasi mengambil data dari database utama.
4. Aplikasi menyimpan hasilnya ke Redis dengan batas waktu, supaya permintaan berikutnya cepat.
5. Saat data produk berubah, aplikasi menghapus atau memperbarui key di Redis agar pengguna tidak melihat data lama.

Batas waktu di langkah 4 memakai fitur expire. Dokumentasi Redis menjelaskan bahwa perintah EXPIRE memasang timeout pada sebuah key, dan setelah timeout habis key itu otomatis dihapus ([sumber](https://redis.io/docs/latest/commands/expire/)). Contoh sederhana di redis-cli (ilustrasi CDS):

```bash
SET produk:1001 '{"nama":"Kopi Arabika","harga":85000}' EX 300
GET produk:1001
TTL produk:1001
```

Perintah pertama menyimpan data produk selama 300 detik, perintah kedua membacanya, dan perintah ketiga menampilkan sisa waktu sebelum key dihapus.

### Saat Memori Penuh: Eviction

Karena data ada di RAM, kapasitas Redis terbatas. Direktif `maxmemory` menentukan batas memori maksimum untuk data cache, misalnya `maxmemory 100mb` di file redis.conf ([sumber](https://redis.io/docs/latest/develop/reference/eviction/)). Saat batas itu tercapai, Redis mengikuti eviction policy yang dipilih ([sumber](https://redis.io/docs/latest/develop/reference/eviction/)):

- `noeviction`: key tidak dihapus, tetapi perintah yang menyimpan data baru akan mengembalikan error. Perintah yang hanya membaca tetap berjalan.
- `allkeys-lru`: menghapus key yang paling lama tidak dipakai (least recently used).
- Ada juga kebijakan lain, misalnya berbasis frekuensi pemakaian (LFU) atau hanya untuk key yang punya expire.

Dokumentasi Redis juga mengingatkan: jika jumlah key yang kedaluwarsa tinggi, bisa jadi TTL terlalu pendek atau key yang dipilih untuk expire kurang tepat, sehingga data hilang dari cache lebih cepat dari seharusnya ([sumber](https://redis.io/docs/latest/develop/reference/eviction/)).

## Persistence: Apakah Data Redis Hilang Saat Restart?

Tidak selalu. Redis menyediakan beberapa pilihan persistence, yaitu menulis data ke penyimpanan permanen seperti SSD ([sumber](https://redis.io/docs/latest/operate/oss_and_stack/management/persistence/)):

| Pilihan | Cara kerja |
|---|---|
| RDB (Redis Database) | Membuat snapshot data pada interval tertentu |
| AOF (Append Only File) | Mencatat setiap operasi tulis, lalu memutar ulang catatan itu saat server menyala untuk membangun kembali data |
| Tanpa persistence | Persistence dimatikan sepenuhnya; kadang dipakai untuk caching |
| RDB + AOF | Menggabungkan keduanya di satu instance |

Untuk cache murni, kehilangan data saat restart biasanya tidak masalah karena data bisa diambil ulang dari database. Untuk data seperti antrean pekerjaan atau sesi pengguna, pilih persistence yang sesuai.

## Fitur Lain Redis

- **Replikasi.** Redis punya replikasi leader-follower (master-replica) yang membuat instance replica menjadi salinan persis dari master. Replica otomatis tersambung kembali ke master setiap kali koneksi terputus ([sumber](https://redis.io/docs/latest/operate/oss_and_stack/management/replication/)).
- **Pub/Sub.** Perintah SUBSCRIBE, UNSUBSCRIBE, dan PUBLISH menjalankan pola publish/subscribe, di mana pengirim mengirim pesan ke channel tanpa tahu siapa penerimanya ([sumber](https://redis.io/docs/latest/develop/pubsub/)). Perlu dicatat, pub/sub Redis memakai pengiriman at-most-once: jika subscriber gagal memproses pesan, pesan itu hilang selamanya. Untuk jaminan yang lebih kuat, dokumentasi Redis menyarankan Redis Streams ([sumber](https://redis.io/docs/latest/develop/pubsub/)).
- **Streams.** Cocok untuk mencatat event secara berurutan lalu memprosesnya ([sumber](https://redis.io/docs/latest/develop/data-types/)), misalnya event pesanan yang perlu diproses oleh beberapa layanan dalam arsitektur [microservices](/blog/microservices-adalah).

## Keamanan Redis

Dokumentasi Redis menegaskan bahwa Redis dirancang untuk diakses klien tepercaya di lingkungan tepercaya, sehingga umumnya bukan ide yang baik membuka Redis langsung ke internet ([sumber](https://redis.io/docs/latest/operate/oss_and_stack/management/security/)). Pada aplikasi web, aplikasi menjadi perantara antara Redis dan browser pengguna, dan akses yang tidak tepercaya ke Redis harus selalu lewat lapisan yang menerapkan kontrol akses dan validasi input ([sumber](https://redis.io/docs/latest/operate/oss_and_stack/management/security/)).

Poin praktis dari dokumentasi Redis dan panduan internal CDS:

- Tutup port Redis untuk semua pihak kecuali klien tepercaya di jaringan internal ([sumber](https://redis.io/docs/latest/operate/oss_and_stack/management/security/)).
- Pakai autentikasi. Cara yang direkomendasikan sejak Redis 6 adalah Access Control Lists (ACL), yang memungkinkan membuat pengguna dengan izin yang terperinci ([sumber](https://redis.io/docs/latest/operate/oss_and_stack/management/security/)).
- Jangan simpan data sensitif di cache tanpa batas waktu, dan pastikan key sesi dihapus saat pengguna logout. Ini panduan internal CDS.

Keamanan Redis juga terkait dengan keamanan [backend](/blog/backend-adalah) secara keseluruhan, karena backend-lah yang membaca dan menulis ke Redis.

## Lisensi Redis

Lisensi Redis berubah beberapa kali, jadi perlu dicek sebelum dipakai. Menurut halaman lisensi resmi, Redis Open Source mulai versi 8 bisa dipakai dengan salah satu dari tiga lisensi: RSALv2, SSPLv1, atau AGPLv3. Redis 7.2.x ke bawah tetap memakai lisensi BSD3, sedangkan Redis Community Edition 7.4.x sampai 7.8.x memakai lisensi ganda RSALv2/SSPLv1 ([sumber](https://redis.io/legal/licenses/)). Untuk pemakaian komersial, pastikan tim hukum atau tim teknis Anda memahami kewajiban dari lisensi yang dipilih.

## Contoh Pemakaian Redis di Aplikasi Bisnis

Berikut contoh yang sering ditemui tim CDS (ilustrasi, bukan data proyek tertentu):

- **Cache halaman dan API.** Daftar produk atau hasil [API](/blog/api-adalah) yang jarang berubah disimpan di Redis beberapa menit, sehingga database tidak terbebani saat trafik naik.
- **Penyimpanan sesi.** Sesi login disimpan di Redis supaya semua server di belakang [load balancer](/blog/load-balancer-adalah) bisa membaca sesi yang sama.
- **Rate limiting.** Menghitung jumlah request per pengguna per menit dengan penghitung yang punya expire.
- **Leaderboard dan peringkat.** Memakai sorted sets untuk peringkat penjualan atau poin pengguna.
- **Antrean pekerjaan.** Mengirim email atau notifikasi di latar belakang memakai lists atau streams.

## Kapan Bisnis Perlu Redis?

Panduan internal CDS untuk menilai kebutuhan Redis:

1. Halaman atau API yang sama dibaca berulang kali dan database mulai lambat saat jam sibuk.
2. Aplikasi berjalan di beberapa server dan butuh tempat bersama untuk sesi atau data sementara.
3. Ada fitur yang butuh penghitung cepat, peringkat, atau antrean ringan.
4. Tim siap mengatur batas memori, eviction policy, dan keamanan jaringan Redis.

Jika aplikasi masih kecil dan database belum menjadi hambatan, menambah Redis justru menambah satu komponen yang harus dirawat. Mulai dari mengukur dulu bagian mana yang lambat.

## FAQ Seputar Redis

### Redis adalah apa dalam bahasa sederhana?

Redis adalah tempat penyimpanan data di memori yang sangat cepat, biasa dipakai sebagai cache agar aplikasi tidak selalu membaca dari database utama ([sumber](https://redis.io/docs/latest/get-started/)).

### Apakah Redis termasuk database?

Ya. Redis adalah in-memory data store yang bisa dipakai sebagai cache, document database, maupun vector database ([sumber](https://redis.io/docs/latest/get-started/)). Namun di banyak aplikasi bisnis, Redis dipakai mendampingi database utama, bukan menggantikannya.

### Apakah data Redis hilang saat server restart?

Tergantung pengaturan persistence. Dengan RDB atau AOF, data ditulis ke disk dan bisa dipulihkan saat server menyala lagi ([sumber](https://redis.io/docs/latest/operate/oss_and_stack/management/persistence/)).

### Apa itu TTL di Redis?

TTL adalah sisa waktu sebelum key dihapus otomatis. Batas waktu dipasang dengan perintah seperti EXPIRE, dan key otomatis dihapus setelah waktunya habis ([sumber](https://redis.io/docs/latest/commands/expire/)).

### Apakah Redis gratis?

Redis Open Source tersedia di bawah lisensi RSALv2, SSPLv1, atau AGPLv3 mulai versi 8 ([sumber](https://redis.io/legal/licenses/)). Redis Ltd. juga menjual produk komersial dan layanan cloud. Biaya utama biasanya datang dari server dan RAM yang dibutuhkan.

### Apa bedanya Redis dan database biasa?

Redis menyimpan data di memori dan diakses lewat key, sehingga sangat cepat untuk data yang sering dibaca. Database relasional menyimpan data di disk dalam tabel dan cocok untuk data utama yang butuh relasi dan query kompleks.

## Butuh Bantuan Mempercepat Aplikasi Anda?

Tim CDS membangun aplikasi web, backend, dan API lengkap dengan caching, antrean, dan infrastruktur yang siap trafik tinggi lewat [jasa pembuatan software custom](/services/software). Jika aplikasi Anda mulai lambat dan Anda ingin tahu apakah caching bisa membantu, mulai dari [konsultasi IT](/services/consulting). Anda juga bisa melihat [karya CDS](/works) untuk proyek yang sudah kami kerjakan.


---

*Markdown version of https://www.ciptadusa.com/blog/redis-adalah — generated for AI agents and LLM crawlers.*
