定義乙個這樣的列舉類,把要快取的key的格式給定義下來,通過getcachekey()方法來獲取到快取的key
這樣的話,不管傳參個數多少,都在統一乙個列舉類給處理好了
@allargsconstructor
@getter
public enum cachekey
public string getcachekey(object... args)
}
這樣你就可以定義乙個設定快取的通用方法
value的**可以定義乙個無參獲取物件的supplier介面
再進一步的話,可以將此方法設定成介面裡的抽象方法,讓不同的實現類去實現該方法,以此來快取不同的業務資料.
void setcache(supplier> supplier, cachekey keyformat, object... args);
@override
public boolean hhaskey(string key, string hashkey)
@override
public long hincr(string key, string hashkey, long delta)
@override
public long hdecr(string key, string hashkey, long delta)
@override
public setsmembers(string key)
監聽Redis快取key過期
有些業務需要延遲一定時間後執行,比如訂單提交後15分鐘未支付就自動關閉,這裡只是舉個例子。我們可以通過監聽redis的key過期事件來實現這個功能。新增redis依賴 org.springframework.boot spring boot starter data redis 配置訊息監聽容器,把...
redis快取穿透 快取雪崩和熱點key
快取穿透 穿過快取,直接訪問資料庫。解決方案 對查詢不存在的儲存到快取中value設定為null.採用布隆過濾器.如果key有規則,那麼就可以直接過濾掉無規則的key 偽 if jedis查詢快取不存在 else 返回結果 else快取雪崩 某一時刻大量的key過期,使用者又大量的查詢這些key。造...
為owncloud配置Redis快取
安裝redis wget tar xzf redis 4.0.11.tar.gz 然後進入redis 4.0.11目錄編譯redis cd redis 4.0.11 編譯 make 然後將redis安裝到某個目錄。比如下面的 usr local redis make prefix usr local...