詳解spring boot starter redis配置文件
spring-boot-starter-Redis主要是通過配置RedisConnectionFactory中的相關(guān)參數(shù)去實(shí)現(xiàn)連接redis service。
RedisConnectionFactory是一個(gè)接口,有如下4個(gè)具體的實(shí)現(xiàn)類,我們通常使用的是JedisConnectionFactory。
在spring boot的配置文件中redis的基本配置如下:
# Redis服務(wù)器地址 spring.redis.host=192.168.0.58 # Redis服務(wù)器連接端口 spring.redis.port=6379 # Redis服務(wù)器連接密碼(默認(rèn)為空,如果redis服務(wù)端配置文件開啟了requirepass 密碼,此處就應(yīng)該填寫相應(yīng)的配置密碼) spring.redis.password= # 連接超時(shí)時(shí)間(毫秒) spring.redis.timeout=0
上邊這4項(xiàng)是在JedisConnectionFactory類中的基本配置項(xiàng),里邊其實(shí)還包含了一些比如連接池,集群,主從,哨兵等的配置,這里先簡(jiǎn)單介紹下連接池(JedisPoolConfig),需要了解其它配置了可以看下源碼。GenericObjectPoolConfig是JedisPoolConfig的父類,主要提供了maxTotal、maxIdle、maxIdle共三個(gè)參數(shù)的配置,其中還設(shè)置了默認(rèn)的參數(shù)。
# 連接池最大連接數(shù)(使用負(fù)值表示沒有限制,對(duì)應(yīng)maxTotal) spring.redis.pool.max-active=8 # 連接池中的最大空閑連接 spring.redis.pool.max-idle=8 # 連接池中的最小空閑連接 spring.redis.pool.min-idle=0
配置文件配置好后,還需要建立一個(gè)redis的配置類,主要用來(lái)配置key和value的序列化及加載配置文件中的相關(guān)參數(shù)
如果你只需要使用基本的redis配置,那么使用如下配置類即可,spring boot會(huì)自動(dòng)掃描redis的基本配置,但是有一項(xiàng)要注意那就是password,如果你在配置文件中設(shè)置了password,那么就必須在配置類中手工注入JedisConnectionFactory中,否則會(huì)在啟動(dòng)過程中報(bào)NOAUTH Authentication required.;:
@Configuration @EnableCaching public class RedisConfig extends CachingConfigurerSupport{ @Bean public KeyGenerator keyGenerator() { return new KeyGenerator() { public Object generate(Object target, Method method, Object... params) { StringBuilder sb = new StringBuilder(); sb.append(target.getClass().getName()); sb.append(method.getName()); for (Object obj : params) { sb.append(obj.toString()); } return sb.toString(); } }; } @SuppressWarnings("rawtypes") @Bean public CacheManager cacheManager(RedisTemplate redisTemplate) { RedisCacheManager rcm = new RedisCacheManager(redisTemplate); //設(shè)置緩存過期時(shí)間 //rcm.setDefaultExpiration(60);//秒 return rcm; } @Bean public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) { StringRedisTemplate template = new StringRedisTemplate(factory); @SuppressWarnings({ "rawtypes", "unchecked" }) Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); template.setValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); JedisConnectionFactory jc = (JedisConnectionFactory) factory; System.out.println(jc.getHostName()); return template; } }
如果你還配置了如連接池之類的參數(shù),在上邊配置類中加入:
@Bean public JedisConnectionFactory redisConnectionFactory() { JedisConnectionFactory factory = new JedisConnectionFactory(); factory.setHostName(host); factory.setPort(port); factory.setPassword(password); factory.setTimeout(timeout); //設(shè)置連接超時(shí)時(shí)間 return factory; }
使用factory進(jìn)行set你所配置的值即可。
附帶解釋一點(diǎn)就是在配置類中注入配置文件中的屬性方案有多種,如需了解可參考下文:
以上所述是小編給大家介紹的詳解spring boot starter redis配置文件,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
springboot?@Validated的概念及示例實(shí)戰(zhàn)
這篇文章主要介紹了springboot?@Validated的概念以及實(shí)戰(zhàn),使用?@Validated?注解,Spring?Boot?應(yīng)用可以有效地實(shí)現(xiàn)輸入驗(yàn)證,提高數(shù)據(jù)的準(zhǔn)確性和應(yīng)用的安全性,本文結(jié)合實(shí)例給大家講解的非常詳細(xì),需要的朋友可以參考下2024-04-04SpringBoot使用Mybatis注解實(shí)現(xiàn)分頁(yè)動(dòng)態(tài)sql開發(fā)教程
這篇文章主要為大家介紹了SpringBoot使用Mybatis注解實(shí)現(xiàn)分頁(yè)及動(dòng)態(tài)sql開發(fā)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03Java BufferedWriter BufferedReader 源碼分析
本文是關(guān)于Java BufferedWriter ,BufferedReader 簡(jiǎn)介、分析源碼 對(duì)Java IO 流深入了解,希望看到的同學(xué)對(duì)你有所幫助2016-07-07Springboot實(shí)現(xiàn)根據(jù)條件切換注入不同實(shí)現(xiàn)類的示例代碼
這篇文章主要介紹了Springboot實(shí)現(xiàn)根據(jù)條件切換注入不同實(shí)現(xiàn)類的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08springboot?maven?打包插件介紹及注意事項(xiàng)說(shuō)明
這篇文章主要介紹了springboot?maven?打包插件介紹及注意事項(xiàng)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12基于html5+java實(shí)現(xiàn)大文件上傳實(shí)例代碼
本文通過一段實(shí)例代碼給大家介紹基于html5+java實(shí)現(xiàn)大文件上傳,涉及到html5 java 文件上傳相關(guān)知識(shí),感興趣的朋友一起學(xué)習(xí)吧2016-01-01