Redis快取之自定義CacheManager

2022-03-18 12:24:18 字數 1345 閱讀 3309

測試快取:

原理:cachemanager===cache 快取元件來實際給快取中儲存資料

1,引入redis的starter,容器中儲存的是rediscachemanager

2,rediscachemanager 幫我們建立rediscache 來作為快取元件;

rediscache通過操作redis來快取資料

3,預設儲存資料 k -v 都是通過序列化來儲存的;

關於能儲存redis。第二次查不能反序列化出來的問題。

原因:存的是dept的快取資料,而cachemanager預設使用redistemplate來操作redis

解決方法:

自定義cachemanager:

1> 引入了redis的starter,cachemanager變為rediscachemanager

2> 預設建立的rediscachemanager 操作redis的時候使用的是 redistemlate

3> redistemlate是預設使用jdk序列化機制

4> 自定義cachemanager

@configuration

public

class

myredisconfig

//員工快取

//cachemanagercustomizers 可以定製快取的一些規則

@bean

@primary

//預設快取管理器 必須得有預設

public rediscachemanager employeecachemanager(redistemplateempredistemplate)

//部門快取

@bean

public redistemplatedeptredistemplate(redisconnectionfactory redisconnectionfactory) throws

unknownhostexception

//部門快取

@bean

public rediscachemanager deptcachemanager(redistemplatedeptredistemplate)

}

@primary 當自定義兩個cachemanager的時候。必須指定乙個為預設的

針對不同的service可以直接標註cachemanager,同時如果有預設指定,可以省略不寫

@cacheconfig(cachenames = "dept",cachemanager = "deptcachemanager")

@service

public

class deptservice

自定義Redis快取伺服器

mybatis的快取機制 一級快取 sqlsession mybatis的資料庫連線 級別的快取 預設開啟,直接可以使用 對開發沒有任何意義 資料庫連線close,快取也消失 二級快取 sqlsessionfactory mybatis的資料庫連線工廠 級別的快取 預設關閉,需要手動開啟 在myba...

自定義AOP實現註解式redis快取

先說怎麼使用,超簡單 註解類 string desc default 描述 long expire default 60 快取過期時間 單位 秒 string key boolean param default false 快取key是否需要拼湊引數 無引數快取的 public listfindal...

快取 SpringCache 自定義快取配置

redis 預設使用 jdk 序列化,需要我們配置序列化機制,自定義乙個配置類,否則存入的資料顯示亂碼 enablecaching 開啟快取 configuration public class mycacheconfig 使用以上配置後,雖然亂碼的問題解決了,但配置檔案又不生效了,比如過期時間等,...