Redis - Pipelining
Redis è un server TCP e supporta il protocollo di richiesta / risposta. In Redis, una richiesta viene eseguita con i seguenti passaggi:
Il client invia una query al server e legge dal socket, di solito in modo bloccante, la risposta del server.
Il server elabora il comando e invia la risposta al client.
Senso Pipelining
Il significato di base del pipelining è che il client può inviare più richieste al server senza attendere le risposte e infine legge le risposte in un unico passaggio.
Esempio
Per controllare il pipelining di Redis, avvia l'istanza di Redis e digita il seguente comando nel terminale.
$(echo -en "PING\r\n SET tutorial redis\r\nGET tutorial\r\nINCR
visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379
+PONG
+OK
redis
:1
:2
:3
Nell'esempio sopra, controlleremo la connessione Redis utilizzando PINGcomando. Abbiamo impostato una stringa denominatatutorial con valore redis. Successivamente, otteniamo il valore delle chiavi e incrementiamo il numero del visitatore tre volte. Nel risultato, possiamo vedere che tutti i comandi vengono inviati a Redis una volta e Redis fornisce l'output di tutti i comandi in un unico passaggio.
Vantaggi del pipelining
Il vantaggio di questa tecnica è una prestazione del protocollo drasticamente migliorata. La velocità ottenuta dal pipelining varia da un fattore cinque per le connessioni a localhost fino a un fattore di almeno cento su connessioni Internet più lente.