Maison > Questions et réponses > le corps du texte
pool = redis.ConnectionPool(host=host, port=port)
client = redis.StrictRedis(connection_pool=pool)
for i in range(10000):
for j in range(30):
client.lpush(IDLE_TASKS, json.dumps(args))
Cette efficacité d'exécution est horriblement faible.
Vous devez attendre des dizaines de secondes pour que l'insertion soit terminée.
Existe-t-il un moyen plus efficace de gérer cela ?
args est juste un tuple avec un contenu comme (1,2,"3")
怪我咯2017-06-28 09:23:58
Parce que personnellement, je n'ai jamais utilisé la bibliothèque Redis, je ne peux donc qu'essayer de donner quelques suggestions basées sur le code que vous avez donné. Si vous ne l'aimez pas, ne critiquez pas :
.1. Je ne sais pas si vous mettez ceci args
是哪来的, 但是在这个循环体中, 似乎没看到改变, 所以能否将这个json.dumps(args)
en dehors du corps de la boucle et l'exécutez :
args_dump = json.dumps(args)
for i in range(10000):
for j in range(30):
client.lpush(IDLE_TASKS, args_dump)
2. Étant donné que vous devez générer environ 300 000 éléments des mêmes données, pouvez-vous générer ces données d'abord, puis à nouveau, car après tout, TCP a également ses propres facteurs de retard ?
client.lpush
3. Vous pouvez utiliser la bibliothèque