¿El método set en redis tiene control de concurrencia?
Con respecto a la pregunta del autor, creo que el punto clave es comprender los dos puntos siguientes:
Redis es un programa de un solo subproceso, es decir, solo puede manejar una solicitud de cliente al mismo tiempo;
Redis maneja múltiples pseudocódigos a través de multiplexación IO (select, epoll, kqueue, basados en diferentes plataformas y adoptando diferentes métodos de implementación):
while True:
# Cuando ningún cliente envía una solicitud, redis bloqueará la llamada select
client = select(....
client = select(...) )
;para cliente en clientes:
ProcessRequest(client)
Todo el proceso mencionado anteriormente está encapsulado en la biblioteca de eventos ae, que se puede encontrar en ae.c, ae. h Encontrado en el código fuente