J'apprends Redis et je suis bloqué avec le concept de pipelining, je suis en train d'envoyer l'instruction à mon Redis serveurRedis pipelining 200 instructions envoyées, seulement 189 réponses
Do à donc je l'aide d'une prise whitch se connecte à le serveur redis que j'utilise.
Voici mon code (je suis français, donc quelques mots seront en français)
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
Et voici la façon dont je me sers du pipelining:
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)
quand je fais cela, le shell me donne le compteur 200 INCR mais il est suivi avec:
:1
:2
:3
:4
....
:185
:186
:187
:188
:189
Est-ce que quelqu'un a une explication? Aussi, si j'utilise une autre instruction par exemple avec un compteur GET, je n'ai que 147 + PONG
Pourquoi ne pas utiliser un adaptateur redis pour python? https: // github.com/andymccurdy/redis-py –
Je ne peux pas utiliser l'adaptateur redis parce que ce code sera implémenté sur un automate qui ne sera pas fourni avec redis, il aura seulement python, donc je dois faire comme ça, mais merci pour le conseil –