前幾天遇到一個緩存問題,這樣描述下:
最初,redis里面key1=value1,之后,兩個線程 一和二 分別執行下圖的操作,從上到下按照時間進行,1 2 3 4 5 6是執行的順序號,從小到大依次執行
執行完成以后,緩存key1的值與數據庫key1的值不一致
解決方法,第1個小步驟中不要立即失效緩存,而是設置一個緩存的失效時間t(比如t=5秒)
t>第4步+第6步的執行時間,避免出現這一問題