python redis 列表插入 速度太慢
問(wèn)題描述
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)問(wèn)有沒(méi)更高效率的處理手法?
args 只是以一個(gè)元組內(nèi)容隨意(1,2,'3')之類
問(wèn)題解答
回答1:因?yàn)槲覀€(gè)人沒(méi)用過(guò)redis這個(gè)庫(kù), 所以只能嘗試從你給出的代碼去給些建議, 不喜勿噴:
1.不知道你的這個(gè)args是哪來(lái)的, 但是在這個(gè)循環(huán)體中, 似乎沒(méi)看到改變, 所以能否將這個(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萬(wàn)的同樣的數(shù)據(jù), 能否將這個(gè)數(shù)據(jù)先生成, 再一次性client.lpush? 因?yàn)楫吘箃cp也有自身的延遲因素
3.可以通過(guò)cProfile庫(kù)去找出耗時(shí)長(zhǎng)的地方, 也可以嘗試換別的庫(kù)去實(shí)現(xiàn)(這個(gè)具體得自己去google了)
相關(guān)文章:
1. 我在centos容器里安裝docker,也就是在容器里安裝容器,報(bào)錯(cuò)了?2. docker內(nèi)創(chuàng)建jenkins訪問(wèn)另一個(gè)容器下的服務(wù)器問(wèn)題3. 在windows下安裝docker Toolbox 啟動(dòng)Docker Quickstart Terminal 失敗!4. docker不顯示端口映射呢?5. docker-compose中volumes的問(wèn)題6. golang - 用IDE看docker源碼時(shí)的小問(wèn)題7. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””8. docker容器呢SSH為什么連不通呢?9. javascript - 連續(xù)點(diǎn)擊觸發(fā)mouseleave事件10. mac里的docker如何命令行開啟呢?

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