14.redis緩存
14.1簡介
穿透型緩存:
- 緩存與后端數據交互在一起,對服務端的調用隱藏細節(jié)。如果從緩存中可以讀到數據,就直接返回,如果讀不到,就到數據庫中去讀取,從數據庫中讀到數據,也是先更新緩存,再返回給服務端。向數據庫中寫入數據,也是先寫入緩存中,再同步給數據庫
旁路型緩存:
- 服務先到緩存中讀取數據,如果數據存在,就直接返回
- 如果緩存中沒有數據,就到數據庫中去讀取
- 服務再將從數據庫中讀到的數據同步給緩存
redis是旁路型緩存
14.2 緩存的特征
- 效率高
- 容量小
14.3 redis緩存處理的兩種情況
緩存命中:redis中有相應的數據,直接從redis中讀取,性能很高
緩存缺失:redis中沒有相應的數據,從后端關系型數據庫中讀取數據,性能很低。如果發(fā)生緩存缺失,為了后續(xù)程序請求中可以從緩存中讀取數據,要將缺失的數據寫入redis,也稱作緩存更新.
String cache_key="user1001";
String cache_value=redis.get(cache_key);//想要從緩存中讀取數據
if (cache_value!=null){
//做相關業(yè)務邏輯
}else{
cache_value=mysql.getUserById(cache_key);//從關系型數據庫中去讀取數據
redis.set(cache_key,cache_value);//緩存更新處理
}
redis不適用于無法獲取源碼的應用。
14.4 緩存的類型
14.4.1 只讀緩存
只用讀取數據的緩存。如果有寫入數據的請求,直接發(fā)到后端的mysql或oracle數據庫,在數據庫中完成增刪除改。對于刪除和修改的數據來說,redis中可能會有舊的數據,需要將舊的數據刪除,下一次讀取時,redis緩存缺失,那么就從數據庫中讀數據,并更新到redis緩存中。
緩存圖片、視頻、手機的通訊記錄、銀行的以往帳單。
14.4.2 讀寫緩存
讀定緩存,不只完成對數據讀取任務,數據的增加、刪除、修改操作,也是在redis緩存中完成,由于redis內存數據庫效率很高,所以可以快速響應給服務端調用。
redis內存數據,在redis實例出現(xiàn)問題時,導致數據丟失。文章來源:http://www.zghlxwxcb.cn/news/detail-649162.html
- 同步直寫:優(yōu)先保證數據可靠
- 異步寫回:執(zhí)行效率高
對寫請求操作進行高效處理,選擇讀寫緩存
如果寫操作很少,需要提升讀取效率,選擇只讀緩存文章來源地址http://www.zghlxwxcb.cn/news/detail-649162.html
到了這里,關于Redis_緩存1_緩存類型的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!