springboot2.X整合redis

SpringBoot2之后,默认采用Lettuce作为redis的连接客户端

配置文件application参考官方文档

https://docs.spring.io/spring-boot/docs/2.1.4.RELEASE/reference/htmlsingle/

# REDIS (RedisProperties)
spring.redis.cluster.max-redirects= # Maximum number of redirects to follow when executing commands across the cluster.
spring.redis.cluster.nodes= # Comma-separated list of "host:port" pairs to bootstrap from.
spring.redis.database=0 # Database index used by the connection factory.
spring.redis.url= # Connection URL. Overrides host, port, and password. User is ignored. Example: redis://user:[email protected]:6379
spring.redis.host=localhost # Redis server host.
spring.redis.jedis.pool.max-active=8 # Maximum number of connections that can be allocated by the pool at a given time. Use a negative value for no limit.
spring.redis.jedis.pool.max-idle=8 # Maximum number of "idle" connections in the pool. Use a negative value to indicate an unlimited number of idle connections.
spring.redis.jedis.pool.max-wait=-1ms # Maximum amount of time a connection allocation should block before throwing an exception when the pool is exhausted. Use a negative value to block indefinitely.
spring.redis.jedis.pool.min-idle=0 # Target for the minimum number of idle connections to maintain in the pool. This setting only has an effect if it is positive.
spring.redis.lettuce.pool.max-active=8 # Maximum number of connections that can be allocated by the pool at a given time. Use a negative value for no limit.
spring.redis.lettuce.pool.max-idle=8 # Maximum number of "idle" connections in the pool. Use a negative value to indicate an unlimited number of idle connections.
spring.redis.lettuce.pool.max-wait=-1ms # Maximum amount of time a connection allocation should block before throwing an exception when the pool is exhausted. Use a negative value to block indefinitely.
spring.redis.lettuce.pool.min-idle=0 # Target for the minimum number of idle connections to maintain in the pool. This setting only has an effect if it is positive.
spring.redis.lettuce.shutdown-timeout=100ms # Shutdown timeout.
spring.redis.password= # Login password of the redis server.
spring.redis.port=6379 # Redis server port.
spring.redis.sentinel.master= # Name of the Redis server.
spring.redis.sentinel.nodes= # Comma-separated list of "host:port" pairs.
spring.redis.ssl=false # Whether to enable SSL support.
spring.redis.timeout= # Connection timeout.

如果使用lettuce连接客户端

依赖为


		1.8
	

	
		
			org.springframework.boot
			spring-boot-starter-web
		

		
			org.springframework.boot
			spring-boot-starter-test
			test
		
		
			org.springframework.boot
			spring-boot-starter-data-redis
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	

springboot2.X整合redis_第1张图片

如果使用jedis连接客户端

添加依赖


		1.8
	

	
		
			org.springframework.boot
			spring-boot-starter-web
		

		
			org.springframework.boot
			spring-boot-starter-test
			test
		
		
			org.springframework.boot
			spring-boot-starter-data-redis
		
		
			org.apache.commons
			commons-pool2
		
		
			redis.clients
			jedis
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	

配置文件

spring:
  redis:
    database: 0
    host: 192.168.25.201
    port: 6379
    password: 
    jedis: 
      pool:
        max-idle: 10
        max-active: 10
        max-wait: -1
        min-idle: 0

配置类

@Configuration
public class RedisAutoConfig {
	@Bean
    public RedisConnectionFactory redisConnectionFactory(JedisPoolConfig jedisPool,
            RedisStandaloneConfiguration jedisConfig) {
        JedisConnectionFactory connectionFactory = new JedisConnectionFactory(jedisConfig);
        connectionFactory.setPoolConfig(jedisPool);
        return connectionFactory;
    }
	
	 @Configuration
	    public static class JedisConf {
	        @Value("${spring.redis.host}")
	        private String host;
	        @Value("${spring.redis.port}")
	        private Integer port;
	        @Value("${spring.redis.password}")
	        private String password;
	        @Value("${spring.redis.database}")
	        private Integer database;

	        @Value("${spring.redis.jedis.pool.max-active}")
	        private Integer maxActive;
	        @Value("${spring.redis.jedis.pool.max-idle}")
	        private Integer maxIdle;
	        @Value("${spring.redis.jedis.pool.max-wait}")
	        private Long maxWait;
	        @Value("${spring.redis.jedis.pool.min-idle}")
	        private Integer minIdle;

	        @Bean
	        public JedisPoolConfig jedisPool() {
	            JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
	            jedisPoolConfig.setMaxIdle(maxIdle);
	            jedisPoolConfig.setMaxWaitMillis(maxWait);
	            jedisPoolConfig.setMaxTotal(maxActive);
	            jedisPoolConfig.setMinIdle(minIdle);
	            return jedisPoolConfig;
	        }

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

测试类

@RunWith(SpringRunner.class)
@SpringBootTest
public class ApiRepeatApplicationTests {
	@Autowired
	private StringRedisTemplate stringRedisTemplate;
	
	@Test
	public void add(){
		stringRedisTemplate.opsForValue().set("test02","123");
	}
	@Test
	public void get(){
		String testValue = stringRedisTemplate.opsForValue().get("test01");
		System.out.println("test01存放有"+testValue);
	}
	@Test
	public void del(){
		stringRedisTemplate.delete("test01");
	}
	@Test
	public void expire(){
		stringRedisTemplate.opsForValue().set("expire", "123");
		String testValue = stringRedisTemplate.opsForValue().get("expire");
		System.out.println("expire存放有"+testValue);
		stringRedisTemplate.expire("expire", 5,TimeUnit.SECONDS);
		Long expireTime = stringRedisTemplate.getExpire("expire");
		System.out.println("expireTime:"+expireTime);
	}
	
	
	public void setString(String key, Object data, Long timeout) {
		if (data instanceof String) {
			String value = (String) data;
			stringRedisTemplate.opsForValue().set(key, value);
		}
		if (timeout != null) {
			stringRedisTemplate.expire(key, timeout, TimeUnit.SECONDS);
		}
	}

	public Object getString(String key) {
		return stringRedisTemplate.opsForValue().get(key);
	}

	public void delKey(String key) {
		stringRedisTemplate.delete(key);
	}

}

springboot2.X整合redis_第2张图片

 

 

 

 

你可能感兴趣的:(redis,springboot)