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

Bagaimana Anda * dengan benar * meminta Redis dari Tornado?

Dalam hal memblokir perintah seperti BLPOP atau mendengarkan saluran Pub/Sub, Anda memerlukan klien asinkron seperti tornado-redis. Anda dapat memulai dengan demo ini untuk melihat bagaimana klien tornado-redis dapat digunakan untuk mengembangkan aplikasi obrolan publik yang sederhana.

Namun saya akan merekomendasikan penggunaan klien redis-py sinkron bersama dengan hireis untuk sebagian besar kasus lainnya.

Keuntungan utama klien asinkron adalah server Anda dapat menangani permintaan masuk sambil menunggu respons server Redis. Namun, server Redis sangat cepat sehingga dalam banyak kasus, biaya tambahan untuk menyiapkan panggilan balik asinkron di aplikasi Tornado Anda menambah lebih banyak waktu total pemrosesan permintaan daripada waktu yang dihabiskan untuk menunggu respons server Redis.

Dengan menggunakan klien asinkron, Anda dapat mencoba mengirim beberapa permintaan ke server Redis pada saat yang bersamaan, tetapi server Redis adalah server berulir tunggal (seperti server Tornado), jadi ia akan menjawab permintaan ini satu per satu dan Anda hampir tidak mendapatkan apa-apa. Dan, sebenarnya, Anda tidak perlu mengirim beberapa perintah Redis secara bersamaan ke server Redis yang sama selama ada pipeline dan perintah seperti MGET/MSET.

Klien asinkron memiliki beberapa keuntungan saat Anda menggunakan beberapa instance server Redis, tetapi saya sarankan menggunakan klien sinkron (redis-py) dan proxy seperti twemproxy atau yang ini (yang terakhir mendukung perintah pipelining dan MGET/MSET).

Saya juga menyarankan untuk tidak menggunakan penggabungan koneksi saat menggunakan klien redis-py di aplikasi Tornado . Cukup buat satu Redis instance objek untuk setiap database Redis yang terhubung dengan aplikasi Anda.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dorong ke antrian Laravel dari luar Laravel (NodeJS)

  2. Mengonfigurasi redis untuk secara konsisten mengeluarkan data lama terlebih dahulu

  3. Laravel Socket.io Terhubung tetapi tidak menerima data

  4. Apa mesin database berorientasi dokumen yang paling efisien untuk menyimpan ribuan dokumen berukuran sedang?

  5. Bagaimana cara mengeluarkan perintah HGET/GET untuk Redis Database melalui Node.js?