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

Apakah perpustakaan Redis yang disewa membuat utasnya sendiri untuk panggilan balik asinkron?

Klien Redis tidak membuat utas clent tambahan, dan berfungsi di utas yang ada.

Redis bekerja dalam proses (utama) lain. API redis yang Anda gunakan bekerja dalam proses lokal Anda dan menggunakan komunikasi antarproses ke proses utama. Permintaan asinkron berarti bahwa proses atau utas Anda menempatkan tugas ke yang lain, dan setelah itu dapat melakukan tugas Anda atau acara menunggu lainnya. Beberapa waktu kemudian balasan async tiba ke aplikasi Anda dan tersedia untuk digunakan. Aplikasi Anda harus menggunakan https://en.wikipedia.org/wiki/Event_loop atau sistem manajemen asinkron apa pun yang memberi tahu Anda dengan memanggil panggilan balik untuk menangani acara (dalam hal ini redis answer).

Arsitektur asinkron berarti Anda menjalankan loop peristiwa yang memanggil penangan panggilan balik untuk setiap peristiwa. Saat panggilan balik dipanggil, Anda dapat membuat sejumlah tugas asinkron. Setelah tugas dibuat, seharusnya saat tugas selesai atau terjadi kesalahan, event handler panggilan balik akan dipanggil. Panggilan balik dapat ditetapkan untuk memulai aplikasi atau koneksi web baru muncul. Saat panggilan balik dipanggil, Anda dapat membuat tugas redis, dan panggilan balik acara hasil nanti akan dipanggil. Semua hal di utas saat ini. Saya memiliki banyak utas, masuk akal untuk mengharapkan bahwa Anda memiliki satu loop peristiwa per setiap utas.

Sifat ulir tunggal Redis:http://redis.io/topics/latency#single-threaded-nature-of-redis

Soket klien berada dalam status non-blocking karena Redis menggunakan I/O multiplexing dan non-blocking. http://redis.io/topics/clients Ini berarti klien Anda tidak akan pernah diblokir.

Dari Redis 2.4 utas di Redis hanya digunakan untuk melakukan beberapa operasi I/O yang lambat di latar belakang, terutama terkait dengan I/O disk, tetapi ini tidak mengubah fakta bahwa Redis melayani semua permintaan menggunakan satu utas.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. zmq vs redis untuk pola pub-sub

  2. Haruskah saya membagikan koneksi Redis antar file/modul?

  3. Bagaimana mekanisme berlangganan Redis PubSub bekerja?

  4. Menggunakan Set Redis

  5. Boot musim semi + redis