recherche

Maison  >  Questions et réponses  >  le corps du texte

la vitesse d'insertion de la liste Redis Python est trop lente

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")

typechotypecho2779 Il y a quelques jours1362

répondre à tous(1)je répondrai

  • 怪我咯

    怪我咯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.lpush3. Vous pouvez utiliser la bibliothèque

    pour découvrir ce qui prend beaucoup de temps, ou vous pouvez essayer d'utiliser une autre bibliothèque pour l'implémenter (vous devez rechercher ceci sur Google pour plus de détails)

    répondre
    0
  • Annulerrépondre