并发情况下修改数据对缓存的影响及解决办法

时间:2022-02-27 00:38:30

前几天遇到一个缓存问题,这样描述下:

最初,redis里面key1=value1,之后,两个线程 一和二 分别执行下图的操作,从上到下按照时间进行,1 2 3 4 5 6是执行的顺序号,从小到大依次执行

并发情况下修改数据对缓存的影响及解决办法

执行完成以后,缓存key1的值与数据库key1的值不一致

解决方法,第1个小步骤中不要立即失效缓存,而是设置一个缓存的失效时间t(比如t=5秒)

t>第4步+第6步的执行时间,避免出现这一问题