spring boot 整合redis

参考1
参考2

使用Lettuce作为客户端

  • 依赖
        
            org.springframework.boot
            spring-boot-starter-data-redis
        
        
            org.apache.commons
            commons-pool2
        
  • 配置文件
spring:
  redis:
    timeout: 60s
    host: 
    port: 6379
    password: 
    lettuce:
      pool:
        max-active: 8
        max-wait: -1
        max-idle: 8
        min-idle: 0
  • 使用
@Component
public class RedisUtils {

    @Autowired
    private RedisTemplate redisTemplate;

    public void set(String key, String value) {
        redisTemplate.opsForValue().set(key, value);
    }

    public String get(String key) {
        return (String) redisTemplate.opsForValue().get(key);
    }
}

做了以上三步就可以顺利操作redis了。

使用jedis作为客户端

springboot2.0中默认是使用 Lettuce来集成Redis服务,spring-boot-starter-data-redis默认只引入了 Lettuce包,并没有引入 jedis包支持。所以在我们需要手动引入 jedis的包,并排除掉 lettuce的包。

  • 依赖
        
            org.springframework.boot
            spring-boot-starter-data-redis
            
                
                    io.lettuce
                    lettuce-core
                
            
        

        
            redis.clients
            jedis
        
  • 配置文件
spring:
  redis:
    timeout: 60s
    host: 
    port: 6379
    password: 
#    lettuce:
    jedis:
      pool:
        max-active: 8
        max-wait: -1
        max-idle: 8
        min-idle: 0
  • 配置ConnectionFactory

在 springoot 2.x版本中,默认采用的是 Lettuce实现的,所以无法初始化出 Jedis的连接对象 JedisConnectionFactory,所以我们需要手动配置并注入。springboot2.x通过以上方式集成Redis并不会读取配置文件中的 spring.redis.host等这样的配置,需要手动配置:

    @Value("${spring.redis.host}")
    private String host;
    @Value("${spring.redis.port}")
    private int port;
    @Value("${spring.redis.password}")
    private String password;

    @Bean
    public JedisConnectionFactory jedisConnectionFactory() {
        RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
        config.setHostName(host);
        config.setPort(port);
        config.setPassword(RedisPassword.of(password));
        return new JedisConnectionFactory(config);
    }

以上就可以使用了。

使用redission作为客户端

  • 依赖
        
            org.springframework.boot
            spring-boot-starter-data-redis
        

        
            org.redisson
            redisson-spring-boot-starter
            3.12.3
        
  • 配置文件
spring:
  redis:
    timeout: 60s
    host:
    port: 6379
    password:
  • 使用
@Component
public class RedisUtils {

    @Autowired
    private RedisTemplate redisTemplate;


    public void set(String key, String value) {
        redisTemplate.opsForValue().set(key, value);
    }

    public String get(String key) {
        return (String) redisTemplate.opsForValue().get(key);
    }
}

你可能感兴趣的:(spring boot 整合redis)