微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

浅谈延迟双删策略

  • 1、在谈延时双删之前我们先来了解一下一般场景下数据库和redis的同步机制

    在这里插入图片描述

  • 2、上面这种同步机制会有什么问题?
    在我们访问redis时,redis中的数据可能不是热点数据,即此时数据库的更新操作已经完成,但是还没有同步到redis中。

  • 3、解决方案,延时双删
    延时双删方案执行步骤
    1.删除redis
    2.更新数据库
    3.延时500毫秒
    4.删除redis

  • 问题一:为何要延时500毫秒?
    这是为了我们在第二次删除redis之前能完成数据库的更新操作。
    假象一下,如果没有第三步操作时,有很大概率,在两次删除redis操作执行完毕之后,数据库的数据还没有更新,此时若有请求访问数据,便会出现我们一开始提到的那个问题。

  • 问题二: 为何要两次删除redis?
    如果我们没有第二次删除操作,此时有请求访问数据,有可能是访问的之前未做修改的redis数据,删除操作执行后,redis为空,有请求进来时,便会去访问数据库,此时数据库中的数据已是更新后的数据,保证了数据的一致性。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐