2 poin oleh GN⁺ 2024-11-04 | 1 komentar | Bagikan ke WhatsApp
  • Kasus penggunaan 1: Queueing pekerjaan

    • Redis sering digunakan untuk mengoordinasikan pekerjaan latar belakang di layanan web.
    • Sejak PostgreSQL versi 9.5, queueing pekerjaan dapat diimplementasikan menggunakan opsi SKIP LOCKED.
    • Opsi ini memungkinkan pemilihan pekerjaan tanpa menunggu lock, sehingga menjamin beberapa worker tidak memproses pekerjaan yang sama secara bersamaan.
  • Kasus penggunaan 2: Lock aplikasi

    • Redis sering digunakan untuk distributed lock.
    • Fungsi yang sama dapat diimplementasikan dengan menggunakan advisory lock di PostgreSQL.
    • Advisory lock memungkinkan mesin lock internal PostgreSQL dimanfaatkan untuk tujuan yang didefinisikan aplikasi.
  • Kasus penggunaan 3: Pub/Sub

    • Redis digunakan untuk mendorong event ke klien yang aktif.
    • Sejak PostgreSQL versi 9, fitur Pub/Sub disediakan melalui statement LISTEN dan NOTIFY.
    • Klien PostgreSQL dapat berlangganan ke channel pesan tertentu, dan ketika klien lain mengirim pesan ke channel tersebut, semua subscriber akan menerima notifikasi.
  • Memanfaatkan PostgreSQL secara maksimal

    • Redis digunakan untuk tujuan yang berbeda dari PostgreSQL, dan unggul dalam caching data serta penyimpanan data sementara dengan TTL.
    • PostgreSQL menyediakan lebih dari sekadar database SQL, dan ada kemungkinan tugas yang biasanya menggunakan Redis dapat digantikan oleh PostgreSQL.
    • Ini bisa menjadi pilihan yang bernilai untuk mengurangi kompleksitas penggunaan beberapa layanan data dan menekan biaya operasional.

1 komentar

 
GN⁺ 2024-11-04
Opini Hacker News
  • Redis memberikan waktu respons yang sangat cepat saat dijalankan di mesin yang sama dengan aplikasi. Ini memungkinkan hal-hal yang berbeda dari Postgres

    • Penyimpanan key-value in-memory cocok untuk pekerjaan yang memerlukan karakteristik performa RAM
    • Sudah jelas bahwa Anda tidak bisa mendapatkan performa RAM melalui koneksi jaringan
  • PostgreSQL menawarkan lebih dari sekadar database SQL sederhana

    • Jika Anda hanya menggunakan database di balik ORM, Anda bisa melewatkan banyak kemampuannya
    • Daripada menambahkan layanan seperti Redis, mungkin lebih baik memanfaatkan database yang sudah dikonfigurasi
  • PGQueuer adalah alternatif minimal yang menggunakan PostgreSQL untuk menyediakan antrean pekerjaan, locking, dan notifikasi real-time

    • Mengurangi kebutuhan akan Redis
  • Postgres adalah database yang kuat

    • Redis memiliki hambatan penggunaan yang rendah, menawarkan performa tinggi, dan mengurangi beban pada database utama
    • Caching respons API juga bisa dilakukan di Postgres, tetapi lebih sederhana menggunakan Redis
    • Menggunakan sistem terpisah memang punya kekurangan, tetapi untuk Redis kekurangan itu tidak terlalu besar
  • Sebagian besar proyek hanya membutuhkan antrean pekerjaan yang sederhana, dan menyederhanakan stack yang kompleks itu penting

    • Ada berbagai alternatif dengan beragam kepentingan komersial
  • Postgres memiliki beberapa keterbatasan

    • Fitur seperti KV store, antrean, pub/sub, locking, dan sebagainya bisa diatasi, tetapi tidak sederhana
  • Sebaiknya mulai dengan PostgreSQL lalu beralih ke Redis saat memang dibutuhkan

    • Penting untuk meminimalkan jumlah komponen yang bergerak
  • Kelemahan besar pub/sub Postgres adalah ukuran pesan dibatasi hingga 8000 byte

    • Ada cara dengan menyimpan data di database lalu mengirim ID-nya, tetapi itu memerlukan pekerjaan tambahan
  • Caching, salah satu penggunaan Redis yang paling penting, lebih kompleks di Postgres

    • Update di Postgres lebih mahal daripada insert, dan jaminan durabilitas tidak penting untuk caching
  • Saat menggunakan fungsi-fungsi ini di Postgres, pembaruan dan replikasi menjadi lebih sulit

    • Ini memungkinkan, tetapi saya lebih memilih fokus pada fitur Postgres yang lebih umum digunakan