Spring Boot 2.7.6整合redis與低版本的區別
Spring Boot 2.7.6整合redis與低版本的區別
最近在寫程序的時候參考瞭之前寫過的一篇文章spring boot整合redis中間件與熱部署實現在參考方法是出現瞭很多問題。
對比發現是spring boot的版本問題。在上一篇文章中spring boot是2.1.8REALESE版本,最近項目變成瞭2.7.6版本。
主要有一下幾點不同:
1.全新的配置方式
# 2.7.6版本 # Redis服務器地址 spring.redis.host=localhost # Redis服務器連接端口 spring.redis.port=6379 # Redis服務器連接密碼(默認為空) spring.redis.password=root //2.1.8版本 # Redis服務器地址 spring.data.redis.host=192.168.223.128 # Redis服務器連接端口 spring.data.redis.port=6379 # Redis服務器連接密碼(默認為空) spring.data.redis.password=root
新版本省去瞭data
2.JedisConnectionFactory的生成方式
//2.1.8 @Bean public JedisConnectionFactory JedisConnectionFactory(){ RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration (); redisStandaloneConfiguration.setHostName(host); redisStandaloneConfiguration.setPort(port); redisStandaloneConfiguration.setPassword(password); JedisClientConfiguration.JedisClientConfigurationBuilder jedisClientConfiguration = JedisClientConfiguration.builder(); JedisConnectionFactory factory = new JedisConnectionFactory(redisStandaloneConfiguration, jedisClientConfiguration.build()); return factory; } //2.7.6 @Bean public JedisConnectionFactory jedisConnectionFactory(){ RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration (); redisStandaloneConfiguration.setHostName(host); redisStandaloneConfiguration.setPort(port); redisStandaloneConfiguration.setPassword(password); JedisClientConfiguration.JedisClientConfigurationBuilder jedisClientConfigurationBuilder = (JedisClientConfiguration.JedisClientConfigurationBuilder) JedisClientConfiguration.builder(); JedisClientConfiguration jedisClientConfiguration = jedisClientConfigurationBuilder.build(); return new JedisConnectionFactory(redisStandaloneConfiguration,jedisClientConfiguration); }
3.RedisConnectionFactory需要自動裝配
@Bean public RedisTemplate makeRedisTemplate(@Autowired RedisConnectionFactory redisConnectionFactory) { RedisTemplate redisTemplate = new RedisTemplate(); //redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setConnectionFactory(redisConnectionFactory); return redisTemplate; }
補充:SpringBoot各個版本使用Redis之間的區別
今天在springboot中使用數據庫,springboot版本為2.0.2.RELEASE,通過pom引入jar包,配置文件application.properties中的redis配置文件報錯,提示例如deprecated configuration property ‘spring.redis.pool.max-active’,猜想應該是版本不對,發現springboot在1.4前後集成redis發生瞭一些變化。下面截圖看下。
一、不同版本RedisProperties的區別
這是springboot版本為1.3.2RELEASE中的RedisProperties配置文件類,從圖片中可以看得出來該本的redis配置文件屬性有兩個內部靜態類分別是Pool和Sentinel,七個屬性變量。列入我們想在配置文件中設置redis數據庫host地址,則可以這樣寫
spring.redis.host=localhost host為屬性,配置連接池的最大連接數 spring.redis.pool.max-active=8
這個是redis在application.properties中springboot低版本的配置
# REDIS (RedisProperties) # Redis數據庫索引(默認為0) spring.redis.database=0 # Redis服務器地址 spring.redis.host=localhost # Redis服務器連接端口 spring.redis.port=6379 # Redis服務器連接密碼(默認為空) spring.redis.password= # 連接池最大連接數(使用負值表示沒有限制) 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
下圖則是springboot版本為2.0.2RELEASE中的RedisProperties配置文件類,從圖中可知pool屬性則被封裝到瞭內部靜態類Jedis和Lettuce中去瞭,這時我們要是配置連接池的最大連接數,前綴還是spring.redis,有兩種途徑
spring.redis.jedis.pool.max-active=8 或者 spring.redis.lettuce.pool.max-active=8
這個是redis在application.properties中springboot高版本的配置
# REDIS (RedisProperties) # Redis數據庫索引(默認為0) spring.redis.database=0 # Redis服務器地址 spring.redis.host=localhost # Redis服務器連接端口 spring.redis.port=6379 # Redis服務器連接密碼(默認為空) spring.redis.password= # 連接池最大連接數(使用負值表示沒有限制) spring.redis.jedis.pool.max-active=8 # 連接池最大阻塞等待時間(使用負值表示沒有限制) spring.redis.jedis.pool.max-wait=-1 # 連接池中的最大空閑連接 spring.redis.jedis.pool.max-idle=8 # 連接池中的最小空閑連接 spring.redis.jedis.pool.min-idle=0 # 連接超時時間(毫秒) spring.redis.timeout=0
2、maven下pom中的坐標配置
springboot版本1.4以下<!--引入 spring-boot-starter-redis(1.4版本前)--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-redis</artifactId><version>1.3.2.RELEASE</version></dependency> springboot版本1.4以上<!--引入 spring-boot-starter-data-redis(1.4版本後)多瞭個data加個紅和粗吧--><depen
到此這篇關於Spring Boot 2.7.6整合redis與低版本的區別的文章就介紹到這瞭,更多相關Spring Boot 2.7.6整合redis內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- springboot整合redis修改分區的操作流程
- 詳解springboot中各個版本的redis配置問題
- SpringBoot+SpringCache實現兩級緩存(Redis+Caffeine)
- SpringBoot集成Redis並實現主從架構的實踐
- SpringBoot詳解如何整合Redis緩存驗證碼