本篇文章為大家展示了如何使用spring boot starter redis配置文件,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián):成立于2013年為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為上千余家公司企業(yè)提供了專業(yè)的網(wǎng)站制作、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計和網(wǎng)站推廣服務(wù), 按需定制開發(fā)由設(shè)計師親自精心設(shè)計,設(shè)計的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。spring-boot-starter-Redis主要是通過配置RedisConnectionFactory中的相關(guān)參數(shù)去實現(xiàn)連接redis service。
RedisConnectionFactory是一個接口,有如下4個具體的實現(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= # 連接超時時間(毫秒) spring.redis.timeout=0
上邊這4項是在JedisConnectionFactory類中的基本配置項,里邊其實還包含了一些比如連接池,集群,主從,哨兵等的配置,這里先簡單介紹下連接池(JedisPoolConfig),需要了解其它配置了可以看下源碼。GenericObjectPoolConfig是JedisPoolConfig的父類,主要提供了maxTotal、maxIdle、maxIdle共三個參數(shù)的配置,其中還設(shè)置了默認(rèn)的參數(shù)。
# 連接池大連接數(shù)(使用負(fù)值表示沒有限制,對應(yīng)maxTotal) spring.redis.pool.max-active=8 # 連接池中的大空閑連接 spring.redis.pool.max-idle=8 # 連接池中的最小空閑連接 spring.redis.pool.min-idle=0
配置文件配置好后,還需要建立一個redis的配置類,主要用來配置key和value的序列化及加載配置文件中的相關(guān)參數(shù)
如果你只需要使用基本的redis配置,那么使用如下配置類即可,spring boot會自動掃描redis的基本配置,但是有一項要注意那就是password,如果你在配置文件中設(shè)置了password,那么就必須在配置類中手工注入JedisConnectionFactory中,否則會在啟動過程中報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è)置緩存過期時間 //rcm.setDefaultExpiration(60);//秒 return rcm; } @Bean public RedisTemplateredisTemplate(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è)置連接超時時間 return factory; }
使用factory進(jìn)行set你所配置的值即可。
上述內(nèi)容就是如何使用spring boot starter redis配置文件,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。