sql >> Database teknologi >  >> NoSQL >> Redis

Hvad er de underliggende forskelle mellem select, epoll, kqueue og evport?

Generelt har alle Async I/O-undersystemer forskellige interne elementer, men i det aktuelle specifikke tilfælde bruges disse konkrete Async I/O-libs til at understøtte så mange platforme som muligt. Det vil sige:

  • evport =Solaris 10
  • epoll =Linux
  • kqueue =OS X, FreeBSD
  • vælg =normalt installeret på alle platforme som en fallback

Evport , Epoll , og KQueue har O(1) kompleksitet af deskriptorvalgalgoritme, og de bruger alle interne kernerumshukommelsesstrukturer. De kan også tjene masser (hundredetusindvis) filbeskrivelser.

Bortset fra de andre, select kan kun tjene op til 1024 deskriptorer og laver fuld scanning af deskriptorer (så hver gang den itererer alle deskriptorer for at vælge en at arbejde med), så kompleksiteten er O(n) .




  1. Hvordan sletter man mange mongodb-samlinger på én gang?

  2. Redis klynge/belastningsbalancering

  3. TypeError:ObjectId('') kan ikke JSON serialiseres

  4. redis ydeevne, gem json-objekt som en streng