我在使用python3的redis做缓存是,结构为hset,然当数据达到10000条时,我要对这10000条数据进行入库,此时我删除了redis的hset,这个时候新请求上来的新增不到redis里面,只有在这10000条数据全都入库完毕才会新增到redis里面.
中间加临时变量作为过渡(依然失效,或是我的方式不对)
rds.hset(chn_idx, uid, data) # 当下面进入if判断之后,只有入mysql完成后才会有效的新增数据.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操作.
rds.delete(chn_idx) 后新的请求依然可以新增到redis中,这个hset仅起中间缓存的作用,并且保证数据不会丢失.造成现在这种情况的原因是什么?是hset中的数据太大导致delete需要时间?还是其他原因?
偶然的你
相关分类