Latest web development tutorials

Redis Tecnología Pipeline

Redis se basa en un modelo cliente - servidor y una petición / respuesta de los servicios de protocolo TCP. Esto significa que una solicitud será típicamente siga estos pasos:

  • El cliente envía una consulta al servidor, y escucha declaraciones de zócalo, por lo general en modo de bloqueo, a la espera de la respuesta del servidor.
  • comandos de procesamiento del servidor y devuelve los resultados al cliente.

Redis Tecnología Pipeline

Redis tecnología tubería no puede responder en el momento de servidor, el cliente puede continuar para enviar una petición al servidor, y, finalmente, a la vez de leer la respuesta del servidor.

Ejemplos

Ver tubería Redis, justo lo necesario para empezar Redis instancia e introduzca el siguiente comando:

$(echo -en "PING\r\n SET w3bigkey redis\r\nGET w3bigkey\r\nINCR visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379

+PONG
+OK
redis
:1
:2
:3

Al utilizar el ejemplo que el servicio Redis comandoPING arriba está disponible, entonces hemos establecido Redis valor w3bigkey, y luego se obtiene el valor w3bigkey y crea incremento de visitantes 3 veces.

En los resultados devueltos, podemos ver estos comandos a la vez sometido a Redis servicio, y en última instancia, a la vez de leer la respuesta del servidor


Ventaja de la tubería Tecnología

La ventaja más importante de la tecnología para mejorar el servicio Redis rendimiento tubería.

Algunos datos de prueba

En la siguiente prueba, vamos a utilizar el cliente Redis Ruby que es compatible con las características técnicas de canalización, la tecnología de tubo de ensayo para mejorar el efecto de la velocidad.

require 'rubygems' 
require 'redis'
def bench(descr) 
start = Time.now 
yield 
puts "#{descr} #{Time.now-start} seconds" 
end
def without_pipelining 
r = Redis.new 
10000.times { 
	r.ping 
} 
end
def with_pipelining 
r = Redis.new 
r.pipelined { 
	10000.times { 
		r.ping 
	} 
} 
end
bench("without pipelining") { 
	without_pipelining 
} 
bench("with pipelining") { 
	with_pipelining 
}

A partir de la LAN en el sistema Mac OS X para realizar los datos anteriores indican que esta secuencia de comandos simple, abra la construcción de este gasoducto, el retardo de ida y vuelta se ha mejorado bastante baja.

without pipelining 1.185238 seconds 
with pipelining 0.250783 seconds

Como se puede ver, abrir la tubería, que la velocidad de eficiencia en 5 veces.