session存到redis後,cache和session是在乙個庫的;使用redis多資料配置可以分開。這樣ssession的redis伺服器可以單獨作為認證服務,多個業務模組可以配置單獨的cache庫,防止多模組key衝突的問題。原始碼《github》
增加redis2的配置
spring.redis.host=
192.168
.1.111
spring.redis.port=
6379
spring.redis.database=
1 spring.redis.timeout=
50000
spring.redis.lettuce.pool.max-active=
200 spring.redis.lettuce.pool.max-idle=
20 spring.redis.lettuce.pool.min-idle=
5 spring.redis.lettuce.pool.max-wait=
2000
spring.redis2.host=
192.168
.1.112
spring.redis2.port=
6379
spring.redis2.database=
1 spring.redis2.password=
預設redis配置不變正常實現
@bean
public redistemplate
redistemplate
(redisconnectionfactory redisconnectionfactory)
這裡getredistemplate(redisconnectionfactory)序列化單獨拿出來了,下邊還會用。
public redistemplate getredistemplate
(redisconnectionfactory redisconnectionfactory)
接下來實現redis2的redistemplate
@primary
@bean
("redistemplate2"
)public redistemplate
redistemplate2
(@value
("$"
)int database,
@value
("$"
)long timeout,
@value
("$"
)int maxactive,
@value
("$"
)int maxwait,
@value
("$"
)int maxidle,
@value
("$"
)int minidle,
@value
("$"
) string hostname,
@value
("$"
)int port,
@value
("$"
) string password)
genericobjectpoolconfig genericobjectpoolconfig =
newgenericobjectpoolconfig()
; genericobjectpoolconfig.
setmaxtotal
(maxactive)
; genericobjectpoolconfig.
setminidle
(minidle)
; genericobjectpoolconfig.
setmaxidle
(maxidle)
; genericobjectpoolconfig.
setmaxwaitmillis
(maxwait)
; lettucepoolingclientconfiguration.lettucepoolingclientconfigurationbuilder builder = lettucepoolingclientconfiguration.
builder()
; builder.
poolconfig
(genericobjectpoolconfig)
; builder.
commandtimeout
(duration.
ofseconds
(timeout));
lettuceconnectionfactory connectionfactory =
newlettuceconnectionfactory
(configuration, builder.
build()
);connectionfactory.
afterpropertiesset()
;return
getredistemplate
(connectionfactory)
;}
在例項化redis2的redistemplate時需要引入乙個包,物件池genericobjectpoolconfig。
>
>
org.apache.commonsgroupid
>
>
commons-pool2artifactid
>
dependency
>
又建立了乙個redis連線redistemplate2;目前就直接可以注入使用了。
@autowired
@qualifier
("redistemplate"
)private redistemplate
redistemplate;
@autowired
@qualifier
("redistemplate2"
)private redistemplate
redistemplate2;
還是比較麻煩因為有兩個redistemplate 所以注入要指定bean名稱。再有session的redis庫一般也不會直接操作。所以在session的redistemplate2(把redis2庫作為session庫)的bean上增加註解@primary。這樣session預設使用的就是@primary註解的。
@autowired
private redistemplate
redistemplate;
這樣在注入redistemplate 就是cache庫的。跟單資料來源並沒有任何區別。 Spring Boot Redis 資料快取
之前都是在spring mvc中使用redis,這裡記錄在spring boot中使用redis作為資料快取的過程。參考spring boot整合spring data jpa,搭建專案。本次是在docker中部署redis,從中直接pull官方的redis映象,啟動redis。使用redisdes...
spring boot redis發布訂閱
1.pom 依賴 org.springframework.boot spring boot starter data redis redis.clients jedis 2.配置 redis host 10.5.6.13 port 6379 password sensetime timeout 10...
Spring Boot Redis集群案例
1 配置redis配置檔案 port 6379 daemonize yes bind是繫結ip,0.0.0.0是代表任何ip bind 0.0.0.0 保護模式 protected mode no 新增節點 cluster enabled yes cluster配置檔名,該檔案屬於自動生成,僅用於快...