為redis快取的key定義通用列舉類

2021-10-23 14:06:27 字數 786 閱讀 1506

定義乙個這樣的列舉類,把要快取的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...