Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Pro dan kontra untuk menggunakan Seledri vs. RQ

Inilah yang saya temukan ketika mencoba menjawab pertanyaan yang sama persis ini. Ini mungkin tidak komprehensif, dan bahkan mungkin tidak akurat pada beberapa poin.

Singkatnya, RQ dirancang agar lebih sederhana. Seledri dirancang agar lebih kuat. Mereka berdua sangat baik.

  • Dokumentasi. Dokumentasi RQ komprehensif tanpa rumit, dan mencerminkan kesederhanaan proyek secara keseluruhan - Anda tidak pernah merasa tersesat atau bingung. Dokumentasi Celery juga lengkap, tetapi berharap untuk sering mengunjunginya kembali saat Anda pertama kali menyiapkannya karena ada terlalu banyak opsi untuk diinternalisasi
  • Pemantauan. Bunga Seledri dan dasbor RQ keduanya sangat mudah disiapkan dan memberi Anda setidaknya 90% dari semua informasi yang Anda inginkan

  • Dukungan pialang. Seledri adalah pemenang yang jelas, RQ hanya mendukung Redis. Ini berarti lebih sedikit dokumentasi tentang "apa itu broker", tetapi juga berarti Anda tidak dapat beralih broker di masa mendatang jika Redis tidak lagi bekerja untuk Anda. Misalnya, Instagram menganggap Redis dan RabbitMQ dengan Seledri. Ini penting karena broker yang berbeda memiliki jaminan yang berbeda, mis. Redis tidak bisa (pada saat penulisan) menjamin 100% bahwa pesan Anda terkirim.

  • Antrian prioritas. Model antrian prioritas RQ sederhana dan efektif - pekerja membaca dari antrian secara berurutan. Seledri membutuhkan memutar banyak pekerja untuk mengkonsumsi dari antrian yang berbeda. Kedua pendekatan berfungsi

  • Dukungan OS. Seledri adalah pemenang yang jelas di sini, karena RQ hanya berjalan pada sistem yang mendukung fork misalnya Sistem Unix

  • Dukungan bahasa. RQ hanya mendukung Python, sedangkan Celery memungkinkan Anda mengirim tugas dari satu bahasa ke bahasa lain

  • API. Seledri sangat fleksibel (beberapa backend hasil, format konfigurasi yang bagus, dukungan kanvas alur kerja) tetapi tentu saja kekuatan ini dapat membingungkan. Sebaliknya, api RQ sederhana.

  • Dukungan subtugas. Seledri mendukung subtugas (misalnya membuat tugas baru dari dalam tugas yang ada). Saya tidak tahu apakah RQ melakukannya

  • Komunitas dan Stabilitas. Seledri mungkin lebih mapan, tetapi keduanya merupakan proyek aktif. Pada saat penulisan, Seledri memiliki ~3500 bintang di Github sementara RQ memiliki ~2000 dan kedua proyek menunjukkan pengembangan aktif

Menurut pendapat saya, Seledri tidak serumit reputasinya yang mungkin membuat Anda percaya, tetapi Anda harus RTFM.

Jadi, mengapa ada orang yang mau menukar Seledri (bisa dibilang lebih lengkap) untuk RQ? Dalam pikiran saya, semuanya bermuara pada kesederhanaan. Dengan membatasi dirinya ke Redis+Unix, RQ menyediakan dokumentasi yang lebih sederhana, basis kode yang lebih sederhana, dan API yang lebih sederhana. Ini berarti Anda (dan kontributor potensial untuk proyek Anda) dapat fokus pada kode yang Anda pedulikan, daripada harus menyimpan detail tentang sistem antrian tugas di memori kerja Anda. Kita semua memiliki batasan berapa banyak detail yang bisa ada di kepala kita sekaligus, dan dengan menghilangkan kebutuhan untuk menyimpan detail antrian tugas di sana, RQ memungkinkan kembali ke kode yang Anda pedulikan. Kesederhanaan itu datang dengan mengorbankan fitur-fitur seperti antrian tugas antar bahasa, dukungan OS yang luas, jaminan pesan yang 100% andal, dan kemampuan untuk berpindah perantara pesan dengan mudah.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. masalah otentikasi dengan saluran pribadi laravel dan server-laravel-echo

  2. Bagaimana saya bisa mendapatkan Principal pengguna yang saat ini diautentikasi dengan keamanan pegas dan Redis di aplikasi boot musim semi?

  3. Eksekusi/penjadwalan tertunda dengan Redis?

  4. Bagaimana Menerapkan Transaksi Terdistribusi Di Mysql, Redis, dan Mongo

  5. Mengapa SQLite lebih cepat daripada Redis dalam benchmark sederhana ini?