python redis 列表插入 速度太慢
問題描述
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))
這種執(zhí)行效率低的可怕。需要等幾十秒,才能插入完成。請問有沒更高效率的處理手法?
args 只是以一個元組內(nèi)容隨意(1,2,'3')之類
問題解答
回答1:因為我個人沒用過redis這個庫, 所以只能嘗試從你給出的代碼去給些建議, 不喜勿噴:
1.不知道你的這個args是哪來的, 但是在這個循環(huán)體中, 似乎沒看到改變, 所以能否將這個json.dumps(args)放到循環(huán)體外面執(zhí)行:
args_dump = json.dumps(args)for i in range(10000): for j in range(30):client.lpush(IDLE_TASKS, args_dump)
2.看到你大概要生成30萬的同樣的數(shù)據(jù), 能否將這個數(shù)據(jù)先生成, 再一次性client.lpush? 因為畢竟tcp也有自身的延遲因素
3.可以通過cProfile庫去找出耗時長的地方, 也可以嘗試換別的庫去實現(xiàn)(這個具體得自己去google了)
相關(guān)文章:
1. javascript - sublime快鍵鍵問題2. javascript - immutable配合react提升性能?3. macos - 如何徹底刪除mac自帶的apache和php4. DADB.class.php文件的代碼怎么寫5. mysql - 在log日志中已知用戶的某一步操作,如何獲取其上一步操作?6. shell - mysql更新錯誤7. 網(wǎng)頁爬蟲 - 如何使用使用java抓取信息并制作一個排名系統(tǒng)?8. 如何設(shè)置一個無限循環(huán)并打破它。(Java線程)9. python小白 自學(xué)看書遇到看不懂的地方10. php對mysql提取數(shù)據(jù)那種速度更快

網(wǎng)公網(wǎng)安備