spring redis cache使用思考

2021-07-03 08:29:46 字數 600 閱讀 9391

專案中使用spring redis cache做為cache客戶端。

spring redis cache中rediscache是整個spring cache的領域模型,對應乙個cache塊的操作類。

rediscache中定義了put,get,clean,evict操作。

其中clean方法用於清除當前cache塊中所有的元素,這裡會加鎖,而鎖的實現是往redis伺服器上存放乙個key為:cache塊名稱加上~lock的元素。最後清除鎖則是在clean方法執行完成後在finally中清除。

put與get方法執行時會檢視是否存在lock鎖,存在則會sleep 300毫秒。這個過程會一直繼續,直到redis伺服器上不存在鎖時才會進行相應的get與put操作。

這裡存在乙個問題,如果clean方法執行時間很長,這時當前執行clean操作的機子掛了,就導致lock元素一直存在於redis伺服器上。

之後就算這個機子重新啟動後,也無法正常使用cache。原因是:get與put方法在執行時,鎖lock始終存在於redis伺服器上。

專案執行中,遇到了這種情況。

總結:在開發過程中,如果使用到開源框架中的某個方法,一定要深入了解其實現方式,運用場景。最壞的情況是什麼。

類方法繼承使用小思

之前對類方法的繼承一直很朦朧,今日看著書突然想通了,寫了個例子證實了下想法 下面是兩個類,乙個是父類ccfather,乙個是子類ccson繼承自ccfather import inte ce ccfather nsobject nsstring name nsstring classnameofse...

飛思卡爾使用指南

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

易靈思FPGA LVDS資源使用

lvds,low voltage differential signaling,低電壓差分訊號 是一種數碼訊號的傳輸方式,特點是功耗低,雜訊低 是在一對pcb走線上通過差分訊號進行資料的傳輸。多數公司是使用ip固化的方式整合在ic內部,提高吞吐。如圖開啟inte ce designer,在lvds ...