Latest web development tutorials

Redis Pipeline Technology

Redis basiert auf einem Client - Server-Modell und ein Request / Response-Services-Protokoll TCP. Das bedeutet, dass eine Anforderung wird in der Regel die folgenden Schritte aus:

  • Der Client sendet eine Anfrage an den Server, und lauscht kehrt Sockel, in der Regel Modus bei der Blockierung, für die Server-Antwort wartet.
  • Die Server-Verarbeitung von Befehlen und gibt die Ergebnisse an den Client.

Redis Pipeline Technology

Redis Pipeline-Technik zum Zeitpunkt des Servers nicht antworten kann, kann der Client weiterhin eine Anfrage an den Server zu senden, und schließlich alle auf einmal die Antwort des Servers zu lesen.

Beispiele

Siehe redis Pipeline, nur müssen Sie redis Instanz und geben Sie den folgenden Befehl starten:

$(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

Durch die Verwendung des obigen Beispiels wirPING - Befehl redis - Service zur Verfügung, dann haben wir w3bigkey Wert redis, und dann bekommen wir den Wert w3bigkey und machen Besucher Schritt 3 mal einrichten.

In den zurückgegebenen Ergebnissen können wir diese Befehle sehen auf einmal zu Redis Dienst, und schließlich auf einmal die Antwort des Servers zu lesen


Vorteil Pipeline Technology

Der bedeutendste Vorteil der Technologie Pipeline Performance redis Service zu verbessern.

Einige Testdaten

Im folgenden Test werden wir die Redis Ruby-Client verwenden, die Pipeline technischen Merkmale unterstützt, um die Testrohrtechnologie die Wirkung der Geschwindigkeit zu erhöhen.

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 
}

Aus dem LAN in Mac OS X-System die obigen Daten zeigen, dass dieses einfache Skript auszuführen, das Pipeline-Betrieb zu öffnen, hat die Round-Trip-Verzögerung wurde recht gering verbessert.

without pipelining 1.185238 seconds 
with pipelining 0.250783 seconds

Wie Sie sehen können, um die Pipeline zu öffnen, beschleunigen wir die Effizienz von 5-mal.