Apakah Redis Diperlukan? PostgreSQL Juga Menyediakan Fitur Queueing, Locking, dan Pub/Sub (2021)
(spin.atomicobject.com)-
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
LISTENdanNOTIFY. - 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
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
PostgreSQL menawarkan lebih dari sekadar database SQL sederhana
PGQueuer adalah alternatif minimal yang menggunakan PostgreSQL untuk menyediakan antrean pekerjaan, locking, dan notifikasi real-time
Postgres adalah database yang kuat
Sebagian besar proyek hanya membutuhkan antrean pekerjaan yang sederhana, dan menyederhanakan stack yang kompleks itu penting
Postgres memiliki beberapa keterbatasan
Sebaiknya mulai dengan PostgreSQL lalu beralih ke Redis saat memang dibutuhkan
Kelemahan besar pub/sub Postgres adalah ukuran pesan dibatasi hingga 8000 byte
Caching, salah satu penggunaan Redis yang paling penting, lebih kompleks di Postgres
Saat menggunakan fungsi-fungsi ini di Postgres, pembaruan dan replikasi menjadi lebih sulit