redis怎么做mysql緩存

在實際項目中,mysql數據庫服務器有時會位于另外一臺主機,需要通過網絡來訪問數據庫;即使應用程序與mysql數據庫在同一個主機中,訪問mysql也涉及到磁盤io操作(mysql也有一些數據預讀技術,能夠減少磁盤io讀寫,此部分后續繼續研究)。

redis怎么做mysql緩存

總之,直接從MySQL中讀取數據不如直接從內存中讀取數據來的效率高。為了提高數據庫訪問效率,人們采用了各種各樣的方法,其中方法之一就是使用一個給予內存的緩存系統放置在數據庫和應用程序之間。? ? ? ? ? ? ? ? ? ?(推薦學習:Redis視頻教程

在查找數據的時候,首先從內存中查找,如果找到則使用,如果沒有找到,那么再真正訪問數據庫。這種方法在一些場景下(例如:頻繁查找相同數據)能夠提高系統的整體效率。

采用redis nosql數據庫作為Mysql數據庫的緩存,在查找的時候,首先查找redis緩存,如果找到則返回結果;如果在redis中沒有找到,那么查找Mysql數據庫,找到的花則返回結果并且更新redis;如果沒有找到則返回空。

對于寫入的情況,直接寫入mysql數據庫,mysql數據庫通過觸發器及UDF機制自動把變更的內容更新到redis中。

框圖:

redis怎么做mysql緩存

讀取步驟:

1. client讀取redis,如果命中返回結果,如果沒有命中轉到2.

2. client讀取數據庫,在數據庫中沒有查到,返回空;在數據庫中查到了,返回查到的結果并更新Redis。

寫入步驟:

1. client修改/刪除或者新增數據到MySQL。

2. MySQL的觸發器調用用戶自定義的UDF。

3. UDF把修改/刪除或者新增的數據更新到redis中。

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享