1. 程式人生 > >redis讀寫一致性遇到的問題

redis讀寫一致性遇到的問題

分析 redis 更新 數據不一致 除了 。。 請求 如何解決 問題分析

1、最初級的緩存不一致問題以及解決方案

問題:先修改數據庫,再刪除緩存,如果刪除緩存失敗了,那麽會導致數據庫中是新數據,緩存中是舊數據,數據出現不一致

解決思路

先刪除緩存,再修改數據庫,如果刪除緩存成功了,如果修改數據庫失敗了,那麽數據庫中是舊數據,緩存中是空的,那麽數據不會不一致

因為讀的時候緩存沒有,則讀數據庫中舊數據,然後更新到緩存中

2、比較復雜的數據不一致問題分析

數據發生了變更,先刪除了緩存,然後要去修改數據庫,此時還沒修改

一個請求過來,去讀緩存,發現緩存空了,去查詢數據庫,查到了修改前的舊數據,放到了緩存中

數據變更的程序完成了數據庫的修改

完了,數據庫和緩存中的數據不一樣了。。。。

大家可以思考下如何解決呢?

redis讀寫一致性遇到的問題