ITPub博客

首页 > > > redis缓存如何做到与数据库数据一致阿?

redis缓存如何做到与数据库数据一致阿?

作者:germo 时间:2019-10-09 16:46:58 0 删除 编辑

假设数据库有一个user表,存入redis的键为users,值为Map<id,user>。

如果不设置键的过期时间还可以做到。但是设置了键的过期时间后,当这个键过期了,

从新把数据读到Map<id,user>中,如果这时候只读了一个user,比如{id=1,name=张三,mark=90},

因为数据还没读取完,我们还没把这个map放入redis。

恰好这时有人修改了张三的数据,把mark修改成90,修改的代码逻辑是先把数据库的张三mark修改为90,然后去

redis修改users对应的map的张三的数据,但是redis中现在还没有users这个键。

所以最后造成的结果是--->数据库中:张三的mark为90 。 redis中:张三的mark为100。

这种不一致的情况该怎么解决呢?

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1868/viewspace-3161168/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-17

  • 博文量
    209
  • 访问量
    8230