English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Redis est une base client-Le modèle du serveur et la requête/Le protocole de réponse du service TCP. Cela signifie que dans la plupart des cas, une requête suit les étapes suivantes :
Le client envoie une requête de consultation au serveur et écoute le retour Socket, généralement en mode bloquant, en attendant la réponse du serveur.
Le serveur traite les commandes et renvoie les résultats au client.
La technologie de canalisation Redis permet au client de continuer à envoyer des requêtes au serveur même si le serveur ne répond pas, et de lire finalement toutes les réponses des serveurs en une seule fois.
Pour vérifier la canalisation Redis, il suffit de démarrer l'exemple Redis et d'entrer la commande suivante :
$(echo -en "PING\r\n SET w3codeboxkey redis\r\nGET w3codeboxkey\r\nINCR visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379 +PONG +OK redis :1 :2 :3
Dans les exemples ci-dessus, nous avons utilisé PING la commande pour vérifier si le service Redis est disponible, ensuite nous avons configuré w3la valeur de codeboxkey est redis, puis nous obtenons w3la valeur de codeboxkey et fait augmenter visitor. 3 deuxièmement.
Dans les résultats retournés, nous pouvons voir que ces commandes soumettent une fois pour toutes aux services Redis et lisent finalement toutes les réponses des serveurs en une seule fois.
管道技术最显著的优势是提高了 redis 服务的性能。
在下面的测试中,我们将使用Redis的Ruby客户端,支持管道技术特性,测试管道技术对速度的提升效果。
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 }
从处于局域网中的Mac OS X系统上执行上面这个简单脚本的数据表明,开启了管道操作后,往返延时已经被改善得相当低了。
without pipelining 1.185238 seconds with pipelining 0.250783 seconds
如你所见,开启管道后,我们的速度效率提升了5倍。