springboot通常整合redis,採用的是redistemplate的形式,除了這種形式以外,還有另外一種形式去整合,即採用spring支援的註解進行訪問快取.
redis.clients
jedis
2.7.3
org.springframework.data
spring-data-redis
1.7.2.release
org.springframework.boot
spring-boot-starter-redis
release
# redis (redisproperties)
# redis資料庫索引(預設為0)
spring.redis.database=0
# redis伺服器位址
spring.redis.host=127.0.0.1
# redis伺服器連線埠
spring.redis.port=6379
# 連線池最大連線數(使用負值表示沒有限制)
spring.redis.pool.max-active=8
# 連線池最大阻塞等待時間(使用負值表示沒有限制)
spring.redis.pool.max-wait=-1
# 連線池中的最大空閒連線
spring.redis.pool.max-idle=8
# 連線池中的最小空閒連線
spring.redis.pool.min-idle=0
# 連線超時時間(毫秒)
spring.redis.timeout=0
/**
* @author hulonghai
* redis配置類
*/@configuration
@enablecaching
public class cacheconfig extends cachingconfigurersupport
@bean
public redistemplateredistemplate(redisconnectionfactory factory)
}
可以看出,我們這裡主要配置了兩個東西,cachemanager方法配置了乙個快取名稱,它的名字叫做thisredis,當我們要在方法註解裡面使用到它的時候,就要根據名稱進行區分不同快取.同時設定了緩存的過期時間.redistemplate則是比較常見的,我們設定了redistemplate,因此在**裡面,我們也可以通過@autowired注入redistemplate來操作redis.
接下來就是如何使用註解啦,這一步反而是最簡單的.其實只用到了兩個註解,@cacheable和@cacheevict.第乙個註解代表從快取中查詢指定的key,如果有,從快取中取,不再執行方法.如果沒有則執行方法,並且將方法的返回值和指定的key關聯起來,放入到快取中.而@cacheevict則是從快取中清除指定的key對應的資料.使用的**如下:
@cacheable(value="thisredis", key="'users_'+#id")
public user finduser(integer id) ,密碼:{}",user.getusername(),user.getpassword());
return user;
} @cacheevict(value="thisredis", key="'users_'+#id",condition="#id!=1")
public void deluser(integer id)
可以看出,我們用@cacheable的value屬性指定具體快取,並通過key將其放入快取中.這裡key非常靈活,支援spring的el表示式,可以通過方法引數產生可變的key(見finduser方法),也可以通過其指定在什麼情況下,使用/不使用快取(見deluser方法).
Redis安裝 spring註解整合Redis
一 windows 下安裝 開啟乙個cmd視窗,使用cd命令切換到檔案目錄e redis,執行redis server.exe redis.windows.conf。後面那個redis.windows.conf可以省略,如果省略,會啟用預設的。輸入之後,會顯示如下介面 這時候另起乙個cmd視窗,原來...
springBoot整合dubbo整合專案
傳統spring 整合dubbo,需要繁瑣的編寫一堆堆的 xml 配置檔案 而springboot整合dubbo後,不在需要寫 xml,通過jar包引用,完 成整合,通過註解的形式完成配置。提高我們的開發效率 目錄結構 1 服務層生產者開發 hs ldm server service 1.1新增du...
SpringBoot整合系列 整合Swagger2
io.springfox springfox swagger2 2.7.0 io.springfox springfox swagger ui 2.7.0 一般無配置項,必要時可以新增自定義配置項,在配置類中讀取 swagger2的配置內容僅僅就是需要建立乙個docket例項 configurati...