请求一:1.1修改数据库数据 1.2 删除redis数据
请求二:2.1修改数据库数据 2.2 删除redis数据
请求三:3.1查询redis中数据 3.2查询数据库数据 3.3 新查到的数据写入redis
添加延时双删策略后的情况
请求一:1.1修改数据库数据 1.2 删除redis数据 1.3 延时3–5s再去删除redis中数据
请求二:2.1修改数据库数据 2.2 删除redis数据 2.3 延时3–5s再去删除redis中数据
请求三:3.1查询redis中数据 3.2 查询数据库数据 3.3 新查到的数据写入redis
双删策略为什么能解决问题:
因为存在了延时时间,故1.3或2.3 一定是最后执行的一步操作(并发中的延时一定要理解)
延时的根本目的就是为了让程序先把3.3执行完,再去删除redis