Redis
 sql >> Base de données >  >> NoSQL >> Redis

Insertion en masse de Redis

Je dirais que vous êtes sur la voie d'une optimisation prématurée (qui n'est généralement pas la meilleure).

Tout langage de script avec un client Redis prenant en charge le pipelining doit pouvoir envoyer au moins 50 000 commandes/s au serveur Redis. Le code sera simple, sans qu'il soit nécessaire d'encoder manuellement le protocole Redis. Certes, l'astuce d'insertion massive est plus rapide, mais en avez-vous vraiment besoin ?

Maintenant, si vous voulez toujours vous en tenir à une insertion massive, vous devez encoder une commande Redis appropriée. L'exemple que vous avez fourni est erroné pour plusieurs raisons :

  • le nombre d'arguments est erroné (votre exemple doit commencer par *3)

  • la longueur du dernier argument est incorrecte (la longueur 1,2,34 est de 6 octets et non de 5).

  • dans la commande SADD, vous avez besoin d'un argument par élément de l'ensemble (c'est-à-dire que pour Redis 1,2,34 sera un seul élément, pas trois).

La bonne commande serait plutôt quelque chose comme ça :

"*5\r\n$4\r\nSADD\r\n$2\r\n80\r\n$1\r\n1\r\n$1\r\n2\r\n$2\r\n34\r\n"

Le protocole Redis est décrit ici :http://redis.io/topics/protocol