問(wèn)題描述我在使用python3的redis做緩存是,結(jié)構(gòu)為hset,然當(dāng)數(shù)據(jù)達(dá)到10000條時(shí),我要對(duì)這10000條數(shù)據(jù)進(jìn)行入庫(kù),此時(shí)我刪除了redis的hset,這個(gè)時(shí)候新請(qǐng)求上來(lái)的新增不到redis里面,只有在這10000條數(shù)據(jù)全都入庫(kù)完畢才會(huì)新增到redis里面.問(wèn)題出現(xiàn)的環(huán)境背景及自己嘗試過(guò)哪些方法中間加臨時(shí)變量作為過(guò)渡(依然失效,或是我的方式不對(duì))相關(guān)代碼rds.hset(chn_idx, uid, data) # 當(dāng)下面進(jìn)入if判斷之后,只有入mysql完成后才會(huì)有效的新增數(shù)據(jù).ualen = int(rds.hlen(chn_idx))if ualen > 10000:
keyData = rds.hgetall(chn_idx)
rds.delete(chn_idx) for uid, infos in keyData.items():
... # 一系列入mysql操作.你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?rds.delete(chn_idx) 后新的請(qǐng)求依然可以新增到redis中,這個(gè)hset僅起中間緩存的作用,并且保證數(shù)據(jù)不會(huì)丟失.造成現(xiàn)在這種情況的原因是什么?是hset中的數(shù)據(jù)太大導(dǎo)致delete需要時(shí)間?還是其他原因?
1 回答

偶然的你
TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
找到問(wèn)題了。是我代碼寫的有問(wèn)題,沒有理解透徹tornado的異步。只要將延時(shí)操作做成異步的,就解決了這個(gè)問(wèn)題。
添加回答
舉報(bào)
0/150
提交
取消