为了账号安全,请及时绑定邮箱和手机立即绑定

python redis做缓存,数据入mysql时redis hset失败

python redis做缓存,数据入mysql时redis hset失败

繁星coding 2018-09-24 17:00:33
问题描述我在使用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需要时间?还是其他原因?
查看完整描述

1 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

找到问题了。是我代码写的有问题,没有理解透彻tornado的异步。只要将延时操作做成异步的,就解决了这个问题。


查看完整回答
反对 回复 2018-09-24
  • 1 回答
  • 0 关注
  • 1223 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信