ich Redis lerne, und ich bin mit dem Pipelining-Konzept blockiert, ich versuche Anweisung an meinem redis ServerRedis Pipelining 200 Anweisungen gesendet, nur 189 Antworten
Muss ich whitch einen Sockel mit bis zu senden, so wird die Verbindung zum der Redis-Server, den ich verwende.
Hier ist mein Code (ich bin Französisch so werden einige Worte in französisch sein)
def send(MESSAGE):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send(MESSAGE)
data = s.recv(BUFFER_SIZE)
s.close()
print "Envoi requete PC:", MESSAGE
return data
Und hier ist die Art, wie ich die Pipelining bin mit:
instruction ='SET compteur 0'
donnee = instruction.encode('utf-8') + '\x0D\x0A'
print envoie(donnee)
instruction=''
for i in range(200):
instruction = instruction + 'INCR compteur\r\n'
donnee = instruction.encode('utf-8') + '\x0D\x0A'
print send(donnee)
, wenn ich das tue, die Shell gibt mir den 200 INCR compteur aber es wird gefolgt mit:
:1
:2
:3
:4
....
:185
:186
:187
:188
:189
Hat jemand eine Erklärung? Auch wenn ich einen anderen Befehl zum Beispiel mit einem GET compteur verwende, habe ich nur 147 + PONG
Warum verwenden Sie nicht einen Redis-Adapter für Python statt Sockets von Hand zu definieren? https: // GitHub.com/andymccurdy/redis-py –
Ich kann den Redis-Adaptator nicht benutzen, weil dieser Code auf einer SPS implementiert wird, die nicht mit redis versehen wird, es wird nur python haben, also muss ich das tun, aber danke für der Ratschlag –