Konsep Redis
Redis
(Remote Dictionary Server) adalah sistem penyimpanan data dalam memori (RAM) yang bersifat open-source. Redis sering digunakan sebagai cache atau basis data key-value
yang sangat cepat, dan mendukung berbagai tipe data seperti:
String
: tipe data sederhana untuk menyimpan teks atau angka.Lists
: daftar yang berisi elemen yang terurut.Sets
: himpunan tanpa elemen yang duplikat.Sorted sets
: himpunan yang terurut berdasarkan skor.Hashes
: kumpulan pasangan key-value, seperti objek atau map di bahasa pemrograman.Streams
, bitmaps, dan hyperloglogs: untuk kebutuhan data yang lebih spesifik.
Redis juga mendukung publishing/subscribing
, transactions
, dan persistence
(dengan menyimpan data ke disk). Redis terkenal karena performanya yang tinggi dan latensinya yang rendah, sehingga sering digunakan dalam aplikasi yang membutuhkan akses data yang sangat cepat, seperti dalam caching, session management, queue, dan streaming data real-time.
Silahkan pelajari dasar-dasar dari Redis di youtube Programmer Zaman Now.
Mengapa Kita Menggunakan Redis?
Scalability
: Redis sangat baik dalam menangani lalu lintas yang tinggi dan dapat dengan mudah diskalakan.Performance
: Redis sangat cepat dalam membaca dan menulis data.Flexibilit
y: Redis dapat digunakan untuk berbagai keperluan, seperti caching, pub/sub, dan penyimpanan data sederhana.
Penggunaan Redis
-
Caching
: Redis sering digunakan untuk menyimpan hasil query database atau respons HTTP agar bisa diambil dengan cepat pada permintaan berikutnya. -
Session Management
: Redis bisa digunakan untuk menyimpan session data, khususnya pada aplikasi yang membutuhkan autentikasi. -
Pub/Sub
: Redis dapat digunakan untukpublish
dansubscribe
seperti layaknya kafka. Namun data yang dikirimkan ke redis dalam pub/sub tidak disimpan, namun hanya di lewatkan. -
Real-Time Analytics
: Redis memungkinkan analitik real-time karena kecepatannya dalam melakukan operasi data secara instan. -
Message Queue
: Redis sering digunakan sebagaimessage queue
sederhana untuk mengelola antrian tugas atau pekerjaan yang akan dijalankan secaraasyncronous.
Bagaimana Redis Bekerja?
Redis dikembangkan untuk menjadi cepat dan efisien, dengan menyimpan data di memori (RAM). Ketika ada request data, Redis memeriksa cache-nya untuk melihat apakah data yang diminta sudah tersimpan di memori. Jika data tidak tersedia di cache, Redis mengambilnya dari database atau API, dan menyimpannya di cache untuk digunakan di masa mendatang.
Redis menyimpan data sebagai key-value
store, di mana setiap key dipasangkan dengan value. Redis mendukung berbagai macam struktur data, seperti string
, hash
, list
, set
, dan sorted set
.
Hal ini membuat Redis sederhana untuk digunakan dalam caching berbagai tipe dan struktur data. Redis juga menyediakan mekanisme persistensi, yang memungkinkannya untuk menulis data ke disk secara berkala. Ini berarti bahwa dalam kasus sistem mengalami crash atau restart, Redis dapat memulihkan data. Redis juga menawarkan replikasi, yang memungkinkan skalabilitas dan ketersediaan data untuk direplikasi ke berbagai server
.
Pada gambar di atas digambarkan bagaimana memanfaatkan redis dalam project kita.
- Ketika
client
melakukan request yang sama , makaserver
akan mengecheck terlebih dahulu ke dalam redis berdasarkan parameter/key tertentu - Jika terdapat data berdasarkan key yang diminta ada, maka redis akan memberikan data tersebut dan
server
akan memberikan response keclient
tanpa melakukan query ke database - Jika terdapat data berdasarkan key yang diminta tidak ada, maka
server
akan melakukan query ke database dan memberikan response keclient
serta menyimpan data tersebut ke redis untuk digunakan jika ada request yang sama masuk.