前几天遇到一个缓存问题,这样描述下:
最初,redis里面key1=value1,之后,两个线程 一和二 分别执行下图的操作,从上到下按照时间进行,1 2 3 4 5 6是执行的顺序号,从小到大依次执行
执行完成以后,缓存key1的值与数据库key1的值不一致
解决方法,第1个小步骤中不要立即失效缓存,而是设置一个缓存的失效时间t(比如t=5秒)
t>第4步+第6步的执行时间,避免出现这一问题