Redis實作首頁熱點資料緩存,防止緩存雪崩
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLzUjY1QTM4Y2YjNmY0ImY4ImNjRTNhRWN4I2N2ITY2I2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
後端添加/修改接口實作緩存同步
不太完善的辦法,下面有延遲雙删(有小bug)的辦法。
★★後期詢問老師後知道了,需要new一個線程完成延時的操作,目前線程直接相應用戶端。★★
延遲雙删實作緩存同步
雙寫一緻性。
所謂緩存同步(雙寫一緻性)當我們添加或者修改或者删除某一個資料的時候,要将緩存中的資料更新。保證緩存和MySQL中的資料是一緻的。
方案1:更新緩存,更新資料庫。
更新緩存成功,更新資料庫失敗(将緩存在更新回去)。
高并發下,更新緩存成功,沒來得及更新資料庫,就有人查詢緩存。
方案2:删除緩存,更新資料庫。
删除緩存中,還沒來得及更新資料庫,其他線程查詢了。
高并發下都會出現意外。
方案3: 更新資料庫,删除緩存。(先用這個)
方案4:删除緩存,更新資料庫,稍等一會再次删除緩存。(延遲雙删)。
修改上面的添加/修改内容的接口: