Redis Technology Pipeline
Redis est basé sur un modèle client - serveur et une demande / réponse des services de protocole TCP. Cela signifie qu'une demande sera généralement suivre les étapes suivantes:
- Le client envoie une requête au serveur, et écoute les retours Socket, généralement en mode bloquant, en attendant la réponse du serveur.
- commandes de traitement de serveur et renvoie les résultats au client.
Redis Technology Pipeline
Redis la technologie des pipelines ne peut pas répondre au moment du serveur, le client peut continuer à envoyer une requête au serveur, et, éventuellement, tout à la fois de lire la réponse du serveur.
Exemples
Voir pipeline Redis, juste vous devez démarrer Redis instance et entrez la commande suivante:
$(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
En utilisant l'exemple que nous le service de commandede PING de Redis ci - dessus est disponible, alors nous avons mis en place Redis valeur w3bigkey, puis nous obtenons la w3bigkey de valeur et faire incrément de visiteur 3 fois.
Dans les résultats retournés, nous pouvons voir ces commandes à la fois soumis à Redis le service, et, finalement, tout à la fois de lire la réponse du serveur
Avantage Technologie Pipeline
L'avantage le plus important de la technologie pour améliorer le service de Redis de performance de pipeline.
Certaines données de test
Dans le test suivant, nous allons utiliser le client Redis Ruby qui prend en charge les caractéristiques techniques de pipeline, la technologie des tubes d'essai pour améliorer l'effet de la vitesse.
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 }
Depuis le réseau local sous Mac OS X système pour effectuer les données ci-dessus indiquent que ce script simple, ouvrez l'opération de pipeline, le délai d'aller-retour a été amélioré assez faible.
without pipelining 1.185238 seconds with pipelining 0.250783 seconds
Comme vous pouvez le voir, le pipeline, nous accélérons l'efficacité de 5 fois.