¿Por ReDiS único subproceso capaz de soportar alta concurrencia

memcached y Redis ¿Cuál es la diferencia? Lo ReDiS modelo de hilos? ¿Por ReDiS único subproceso capaz de soportar alta concurrencia?

 

Este es el momento de pedir Redis, las cuestiones fundamentales ahora, Redis unos principios y características básicas internas, es en realidad un modelo de trabajo Redis de un único subproceso, si no lo saben, que Redis reproduce aunque, fuera de la ¿no sería un problema que no sabe nada?

También es posible que el entrevistador le pedirá que la diferencia entre MemCached y Redis, pero MemCached los primeros años de las principales compañías de Internet se utilizan comúnmente esquema de caché, en los últimos años, pero ahora son básicamente Redis, memcached con un poco de compañía.

 

memcached y Redis cuál es la diferencia?

REDIS de apoyo complejo estructuras de datos

En comparación memcached para Redis, que tiene más estructura de datos que pueden soportar una manipulación de datos más rica. Si un caché puede soportar estructuras y operaciones más complejas, Redis sería una buena opción.

Redis soporte nativo para el modo de clúster

En redis3.x versión será capaz de modo de clúster de apoyo, pero no un modelo de clúster memcached nativa, se basa en el cliente para datos de escritura para lograr el cluster piezas talladas.

Comparación de rendimiento

Debido a las redis más altos de rendimiento memcached solamente mononucleares, polinucleares y pueden utilizarse memcached, el promedio en cada uno del núcleo que en redis pequeño almacenamiento de datos. En lo anterior 100k de datos, el desempeño memcached que redis, aunque redis también el rendimiento recientemente optimizar el almacenamiento de los datos de gran tamaño, pero en comparación con memcached, o ligeramente menos.

REDIS modelo enhebrar

Redis archivo de uso interno manejador de eventos archivo de controlador de eventos, el archivo de controlador de eventos es de un solo subproceso, por lo que se llama Redis modelo de un único subproceso. Se utiliza una pluralidad de IO mecanismo multiplexor socket de escucha simultáneamente, para seleccionar el controlador de eventos correspondiente para el procesamiento de acuerdo con el evento en el zócalo.

estructura de archivos de controlador de eventos consta de cuatro partes:

  • toma de corriente múltiple
  • programa multiplexor IO
  • acontecimiento archivo despachador
  • gestor de eventos (procesador de acuse de recibo de conexión, la solicitud procesador de comandos, procesador de comandos de respuesta)

Una pluralidad de socket puede tener diferentes operaciones simultáneas, cada uno correspondiente a un archivo de evento diferente, pero el programa supervisará la pluralidad de IO multiplexación eventos socket, socket será generado en cola en una cola, cada despachador de eventos eliminar un evento de la cola, el evento correspondiente al procesador de eventos para el procesamiento.

Redis cliente y el aspecto de un proceso de comunicación (si no es una imagen clara, por favor haga clic derecho para abrir la imagen en una nueva pestaña):

 

Una vez establecida la solicitud del cliente a los Redis socket01 conexión de socket servidor, esta vez va a generar un evento AE_READABLE socket del servidor, el IO multiplexado escuchas a los eventos generados por el socket del servidor, a presión en la cola de eventos. acontecimiento archivo despachador para adquirir el evento de la cola, al procesador de respuesta de conexión. El procesador crea una conexión socket01 respuesta pueden comunicarse con el cliente, y la socket01 de eventos AE_READABLE asociados con el procesador solicitante de comandos.

Suponiendo que el cliente envía una solicitud al conjunto de valores clave, entonces ReDiS la AE_READABLE socket01 genera evento, el IO multiplexación de las colas de eventos de prensa del programa, el despachador de eventos adquiridos en este momento de la cola al evento, ya que el evento AE_READABLE el frente socket01 ha asociado con un procesador de solicitud de comando, por lo que el evento para el procesador de eventos distribuidor para procesar la solicitud de comando. procesador solicitante comando lee el valor y la clave completa socket01 se proporciona valor clave en su propia memoria. Después de la operación se ha completado, se socket01 de eventos AE_WRITABLE asociados con el procesador de comandos respuesta.

Si en este momento el cliente está listo para recibir los resultados devueltos, a continuación, Redis en socket01 producirá un evento AE_WRITABLE, también presionado en la cola, el despachador de eventos para encontrar la respuesta procesador de comandos asociados, responder por el procesador de comandos para entrar en este socket01 uno de los resultados de las operaciones, como bien, después de levantar asociado con el procesador de respuestas comando AE_WRITABLE la socket01 evento.

Esto completa un comunicación.

¿Por ReDiS modelo de un único subproceso pueden gestionar eficientemente tan alto?

  • operación de la memoria pura
  • El núcleo se basa en el mecanismo de multiplexación IO no bloqueante
  • En lugar de ello, un solo subproceso evitar multi-roscado el problema el cambio de contexto frecuente
Publicados 370 artículos originales · ganado elogios 599 · Vistas 2,18 millones +

Supongo que te gusta

Origin blog.csdn.net/wzy0623/article/details/103999017
Recomendado
Clasificación