本篇文章為大家展示了如何使用spring boot starter redis配置文件,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
spring-boot-starter-Redis主要是通過配置RedisConnectionFactory中的相關參數去實現連接redis service。
RedisConnectionFactory是一個接口,有如下4個具體的實現類,我們通常使用的是JedisConnectionFactory。
在spring boot的配置文件中redis的基本配置如下:
# Redis服務器地址 spring.redis.host=192.168.0.58 # Redis服務器連接端口 spring.redis.port=6379 # Redis服務器連接密碼(默認為空,如果redis服務端配置文件開啟了requirepass 密碼,此處就應該填寫相應的配置密碼) spring.redis.password= # 連接超時時間(毫秒) spring.redis.timeout=0
上邊這4項是在JedisConnectionFactory類中的基本配置項,里邊其實還包含了一些比如連接池,集群,主從,哨兵等的配置,這里先簡單介紹下連接池(JedisPoolConfig),需要了解其它配置了可以看下源碼。GenericObjectPoolConfig是JedisPoolConfig的父類,主要提供了maxTotal、maxIdle、maxIdle共三個參數的配置,其中還設置了默認的參數。
# 連接池最大連接數(使用負值表示沒有限制,對應maxTotal) spring.redis.pool.max-active=8 # 連接池中的最大空閑連接 spring.redis.pool.max-idle=8 # 連接池中的最小空閑連接 spring.redis.pool.min-idle=0
配置文件配置好后,還需要建立一個redis的配置類,主要用來配置key和value的序列化及加載配置文件中的相關參數
如果你只需要使用基本的redis配置,那么使用如下配置類即可,spring boot會自動掃描redis的基本配置,但是有一項要注意那就是password,如果你在配置文件中設置了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); //設置緩存過期時間 //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; } }
如果你還配置了如連接池之類的參數,在上邊配置類中加入:
@Bean public JedisConnectionFactory redisConnectionFactory() { JedisConnectionFactory factory = new JedisConnectionFactory(); factory.setHostName(host); factory.setPort(port); factory.setPassword(password); factory.setTimeout(timeout); //設置連接超時時間 return factory; }
使用factory進行set你所配置的值即可。
上述內容就是如何使用spring boot starter redis配置文件,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。