Sobre Redis de los cuellos de botella

1. En primer lugar Redis ¿Por qué tan rápido?

1. Sobre la base de la memoria, no limitado por la velocidad del disco duro IO;

2., multi-hilo de conmutación evitar el consumo de un único subproceso causa de la CPU, que no tienen en cuenta la cuestión de la cerradura, la operación de liberación del bloqueo de la cerradura no existe, no hay sobrecarga de rendimiento debido al estancamiento causado;

3. Uso múltiple I / O modelo de multiplexación, no bloqueo IO

Me múltiples E / S modelo de multiplexión es el uso de select, encuesta, epoll capacidad puede controlar simultáneamente el evento de E / S de múltiples flujos, en su tiempo libre, será el hilo actual bloqueado, cuando hay una o más corrientes que tengo / O evento,

Estelas de bloqueo de los estados, por lo que el programa volverá a sondear todas las corrientes (epoll es la única encuesta que realmente envía un flujo de eventos), y sólo el orden secuencial de las corrientes de tratamiento de listo, este enfoque se evitarían muchas operación inútil.

Aquí se refiere a una pluralidad de solicitudes múltiples, medios de multiplexado se multiplexa con un hilo, de varios canales de E / S de multiplexación permite que un solo hilo eficiente procesar una pluralidad de peticiones de conexión (red de IO minimizar el tiempo consumido ),

Redis operación de velocidad y datos en la memoria es muy rápido, que está dentro de la operación de la memoria no se convierta en un cuello de botella de rendimiento Redis, principalmente mediante la creación de un Redis encima de los puntos con un alto rendimiento.

2.Redis ¿Por qué es de un solo subproceso?

Debido a que la operación de memoria Redis se basa en el cuello de botella, la CPU Redis no, Redis cuello de botella tamaño de la memoria de la máquina más probable o ancho de banda. Desde el single-threaded fácil de implementar, y la CPU no se convierta en un cuello de botella, es lógico adoptar un programa de un solo subproceso (después de todo, habrá un montón de problemas utilizando múltiples hilos).

En otras palabras, debido a que el rendimiento de un único subproceso y lograr menores costos de mantenimiento, además de un único subproceso ha sido muy alto, así que no puedo utilizar múltiples hilos.

Tenga en cuenta que un solo hilo aquí, pero sólo un hilo en un proceso para hacer frente a nuestras solicitudes de red, Redis Server Runtime sin duda más de un hilo, por ejemplo, se pondría en práctica en la forma de un hilo hijo de la persistencia

 

Redis cuello de botella:

1. Tamaño de memoria de la máquina, ya que los datos Redis en la memoria, por lo que la cantidad de datos almacenados en la memoria de la cantidad depende de la cantidad

2. Red de Ancho de Banda

Redis clientes ejecutar un comando dividido en los cuatro procesos siguientes:

1) Enviar el comando

2) Hacer cola de comandos

3) la ejecución de comandos

4) retorno de resultado

En donde 1) 4) denominado Round Trip Time (RTT, el tiempo de ida y vuelta).

Redis de cliente y el servidor pueden ser desplegados en diferentes máquinas.

Beijing, por ejemplo, el cliente, el servidor en el Redis Shanghai, dos distancia en línea recta de aproximadamente 1.300 km, entonces el RTT 1 = 1,300 × 2 / (300,000 × 2/3) = 13 ms (la velocidad de transmisión de luz en el vacío por segundo 300.000 kilometros, la fibra óptica se supone aquí 2/3 de la velocidad de la luz),

A continuación, el cliente sólo puede llevarse a cabo en aproximadamente un segundo aproximadamente 80 veces el comando, el alto rendimiento y las características de alta concurrencia Redis contrario, es ya sea en el país tiene su propio servidor Redis, y luego visita, o para utilizar Pipeline.

La tubería (tubería) por encima de mecanismo puede mejorar este problema, se reunía un conjunto de comandos Redis, transmitida por RTT a Redis una vez, entonces el resultado de la ejecución conjunto de la secuencia de comandos Redis devuelve al cliente 192, muestra la imagen sin Pipeline realiza con el comando n,

Todo el proceso toma ninguna Pipeline RTT n veces n veces el modelo de comandos.

Tubería no es una nueva técnica o mecanismo, muchos se utilizan técnicamente. Y RTT será diferente en diferentes entornos de red, como la misma habitación y la misma máquina será más rápido, sala de inter-regional será más lento.

Redis comandos para realizar en tiempo real es por lo general en el nivel de microsegundos, por qué tenemos Redis cuello de botella es la red de ese argumento.

Sin embargo, la mayoría de los desarrolladores prefieren utilizar lenguaje de alto nivel en el cliente de Pipeline, en la actualidad la mayoría de los clientes Redis apoyan Pipeline.

 

Supongo que te gusta

Origin www.cnblogs.com/ZJOE80/p/12563598.html
Recomendado
Clasificación