Redis
 sql >> база данни >  >> NoSQL >> Redis

Библиотеката hiredis Redis създава ли своя собствена нишка за асинхронни обратни извиквания

Клиентът Redis не създава никакви допълнителни нишки Clent и работи в съществуваща нишка.

Redis работеше в друг (основен) процес. Redis API, който използвате, работи във вашия локален процес и използва междупроцесна комуникация с главния процес. Асинхронна заявка означава, че вашият процес или нишка поставя задача на друг и след това може да извърши всяка друга ваша задача или събитие за изчакване. Известно време по-късно асинхронният отговор пристигна във вашето приложение и е достъпен за използване. Приложението ви трябва да използва https://en.wikipedia.org/wiki/Event_loop или която и да е система за асинхронно управление, която ви уведомява чрез извикване на обратно извикване за обработка на събитие (в този случай отговор на повторното извикване).

Асинхронната архитектура означава, че изпълнявате цикъл на събития, които извикват манипулатори за обратно извикване за всяко събитие. Когато се извика обратното повикване, можете да създадете редица асинхронни задачи. След като задачата е създадена, се предполага, че когато задачата е изпълнена или възникне грешка, ще бъде извикан манипулаторът на събитие за обратно извикване. Обратното повикване може да бъде назначено за стартиране на приложението или за появяване на нова уеб връзка. Когато се извика обратното извикване, можете да създадете задачата redis и по-късно ще бъде извикано обратното извикване на събитие за резултат. Всички неща в текущата тема. Имате няколко нишки, разумно е да се очаква, че имате по един цикъл на събития за всяка нишка.

Еднонишкова природа на Redis:http://redis.io/topics/latency#single-threaded-nature-of-redis

Клиентският сокет се поставя в неблокиращо състояние, тъй като Redis използва мултиплексиране и неблокиращ I/O. http://redis.io/topics/clients Това означава, че вашият клиент никога няма да бъде блокиран.

От Redis 2.4 нишките в Redis се използват само за извършване на някои бавни I/O операции във фонов режим, главно свързани с дисков I/O, но това не променя факта, че Redis обслужва всички заявки, използвайки една нишка.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Кеш на Redis срещу директно използване на паметта

  2. Как да споделяте сесия между NodeJs и PHP с помощта на Redis?

  3. Отказ при отказ на клъстер

  4. Redis Hash Pagination

  5. Асинхронно изпълнение на redis команди