我要把資料從redis往mysql里寫,從redis里取出上萬value組成一個串列,一次性存進mysql的話可能會出現超時的問題,雖然可以把超時時間調大,但如果資料量越來越大就不現實
想把這個串列分段,用回圈的話感覺不太好判斷
uj5u.com熱心網友回復:
解決了 用串列分片和while回圈
start = 0
end = 0
while True:
end += 500
values = redis_util.get_values_batch_keys(keys[start:end])
insert_list = []
for row in values:
params = row
row = json.loads(row, encoding='utf-8')
a_url = row['action']
insert_list.append((2, a_url, params))
if len(insert_list) > 0:
db_util.executemany_no_commit(insert_sql, insert_list)
redis_util.delete_batch(keys[start:end])
db_util.commit()
start = end
if end > len(keys):
break
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/26608.html
上一篇:帶著小白學Python
下一篇:shell編程之正則運算式
