Redis-klienten opretter ikke yderligere clent-tråde og fungerer i eksisterende tråd.
Redis'erne arbejdede i en anden (hoved)proces. Redis API'en, som du bruger, virkede i din lokale proces og bruger interproceskommunikation til hovedprocessen. Asynkroniseringsanmodning betyder, at din proces eller tråd sætter opgave til en anden, og derefter kan udføre enhver anden din opgave eller ventehændelse. Nogen tid senere ankom et asynkront svar til din applikation og er tilgængeligt til brug. Din ansøgning skal bruge https://en.wikipedia.org/wiki/Event_loop eller et hvilket som helst async-administrationssystem, der giver dig besked ved at ringe tilbage for at håndtere begivenheden (i dette tilfælde gengive svar).
Asynkron arkitektur betyder, at du kører hændelsesløkke, der kalder tilbagekaldsbehandlere for hver hændelse. Når du ringer tilbage, kan du oprette et antal asynkrone opgaver. Når først opgaven er oprettet, formodes det, at callback-hændelseshandleren vil blive kaldt, end når opgaven er udført eller fejl opstår. Tilbagekald kan tildeles til at starte app eller til en ny webforbindelse. Når tilbagekald kaldes, kan du oprette redis-opgaven, og et senere tilbagekald vil blive kaldt. Alle ting i den aktuelle tråd. Jeg har flere tråde, rimeligt at forvente, at du har én hændelsesløkke pr. hver tråd.
Enkelttrådsart af Redis:http://redis.io/topics/latency#single-threaded-nature-of-redis
Klientsocket sættes i ikke-blokerende tilstand, da Redis bruger multipleksing og ikke-blokerende I/O. http://redis.io/topics/clients Dette betyder, at din klient aldrig vil blive blokeret.
Fra Redis 2.4 tråde i Redis kun brugt til at udføre nogle langsomme I/O-operationer i baggrunden, hovedsageligt relateret til disk I/O, men dette ændrer ikke på det faktum, at Redis betjener alle anmodninger ved hjælp af en enkelt tråd.