Skip to content

Konsep Redis

alt text

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.
  • Flexibility: 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 untuk publish dan subscribe 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 sebagai message queue sederhana untuk mengelola antrian tugas atau pekerjaan yang akan dijalankan secara asyncronous.

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.

alt text

Pada gambar di atas digambarkan bagaimana memanfaatkan redis dalam project kita.

  • Ketika client melakukan request yang sama , maka server 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 ke client tanpa melakukan query ke database
  • Jika terdapat data berdasarkan key yang diminta tidak ada, maka server akan melakukan query ke database dan memberikan response ke client serta menyimpan data tersebut ke redis untuk digunakan jika ada request yang sama masuk.