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í)行效率低的可怕。需要等幾十秒,才能插入完成。請(qǐng)問有沒更高效率的處理手法?
args 只是以一個(gè)元組內(nèi)容隨意(1,2,'3')之類
問題解答
回答1:因?yàn)槲覀€(gè)人沒用過redis這個(gè)庫, 所以只能嘗試從你給出的代碼去給些建議, 不喜勿噴:
1.不知道你的這個(gè)args是哪來的, 但是在這個(gè)循環(huán)體中, 似乎沒看到改變, 所以能否將這個(gè)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ù), 能否將這個(gè)數(shù)據(jù)先生成, 再一次性client.lpush? 因?yàn)楫吘箃cp也有自身的延遲因素
3.可以通過cProfile庫去找出耗時(shí)長(zhǎng)的地方, 也可以嘗試換別的庫去實(shí)現(xiàn)(這個(gè)具體得自己去google了)
相關(guān)文章:
1. html - 對(duì)瀏覽器縮放然后大圖也縮放的問題。2. boot2docker無法啟動(dòng)3. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題4. docker start -a dockername 老是卡住,什么情況?5. debian - docker依賴的aufs-tools源碼哪里可以找到啊?6. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?7. docker gitlab 如何git clone?8. angular.js - angularjs的自定義過濾器如何給文字加顏色?9. docker鏡像push報(bào)錯(cuò)10. macos - mac下docker如何設(shè)置代理
