Latest web development tutorials

Redis Tecnologia Pipeline

Redis é baseado em um modelo cliente - servidor e um pedido / resposta serviços de protocolo TCP. Isto significa que um pedido irá tipicamente seguir estes passos:

  • O cliente envia uma consulta para o servidor, e escuta retornos soquete, geralmente no modo de bloqueio, esperando a resposta do servidor.
  • comandos de processamento do servidor e retorna os resultados para o cliente.

Redis Tecnologia Pipeline

Redis tecnologia oleoduto não pode responder no momento do servidor, o cliente pode continuar a enviar um pedido ao servidor, e, eventualmente, todos ao mesmo tempo a ler a resposta do servidor.

Exemplos

Veja gasoduto Redis, só você precisa para começar a redis instância e digite o seguinte 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

Ao usar o serviço Redis comandoPING exemplo que acima está disponível, em seguida, temos um conjunto de Redis valor w3bigkey, em seguida, obtemos o valor w3bigkey e fazer incremento visitante 3 vezes.

Nos resultados retornados, podemos ver estes comandos de uma vez submetidos a Redis serviço, e, finalmente, todos ao mesmo tempo a ler a resposta do servidor


Vantagem Pipeline Tecnologia

A vantagem mais significativa da tecnologia para melhorar o serviço Redis desempenho pipeline.

Alguns dados de teste

No teste seguinte, usaremos o cliente Redis Ruby que suporta características técnicas de pipeline, a tecnologia de tubo de teste para aumentar o efeito da velocidade.

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 da LAN no sistema Mac OS X para executar os dados acima indicam que este script simples, abra a operação de gasoduto, o atraso de ida e volta foi melhorado bastante baixa.

without pipelining 1.185238 seconds 
with pipelining 0.250783 seconds

Como você pode ver, abrir o pipeline, nós acelerar a eficiência em 5 vezes.