溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis實現緩存的兩種方式

發布時間:2020-06-25 19:56:54 來源:億速云 閱讀:796 作者:Leah 欄目:關系型數據庫

本篇文章給大家分享的是有關redis實現緩存的兩種方式,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

redis實現緩存大致為兩種措施:

一、腳本同步:      

1、自己寫腳本將數據庫數據寫入到redis/memcached。

2、這就涉及到實時數據變更的問題(mysql row binlog的實時分析),binlog增量訂閱Alibaba 的canal ,以及緩存層數據丟失/失效后的數據同步恢復問題。

二、業務層實現:

1、先讀取nosql緩存層,沒有數據再讀取mysql層,并寫入數據到nosql。

2、nosql層做好多節點分布式(一致性hash),以及節點失效后替代方案(多層hash尋找相鄰替代節點),和數據震蕩恢復了。

redis實現數據庫緩存的分析:

對于變化頻率非??斓臄祿碚f,如果還選擇傳統的靜態緩存方式(Memocached、File System等)展示數據,可能在緩存的存取上會有很大的開銷,并不能很好的滿足需要,而Redis這樣基于內存的NoSQL數據庫,就非常適合擔任實時數據的容器。

但是往往又有數據可靠性的需求,采用MySQL作為數據存儲,不會因為內存問題而引起數據丟失,同時也可以利用關系數據庫的特性實現很多功能。所以就會很自然的想到是否可以采用MySQL作為數據存儲引擎,Redis則作為Cache。

MySQL到Redis數據復制方案,無論MySQL還是Redis,自身都帶有數據同步的機制,比較常用的MySQL的Master/Slave模式,就是由Slave端分析Master的binlog來實現的,這樣的數據復制其實還是一個異步過程,只不過當服務器都在同一內網時,異步的延遲幾乎可以忽略。

那么理論上也可用同樣方式,分析MySQL的binlog文件并將數據插入Redis。

因此這里選擇了一種開發成本更加低廉的方式,借用已經比較成熟的MySQL UDF,將MySQL數據首先放入Gearman中,然后通過一個自己編寫的PHP Gearman Worker,將數據同步到Redis。比分析binlog的方式增加了不少流程,但是實現成本更低,更容易操作。

以上就是redis實現緩存的兩種方式,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女