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!

推薦閱讀: