配置: redis: host: 127.0.0.1 port: 6379 maxTotal: 10 maxIdle: 200 maxWaitMillis: 10000 password: timeout: 10000 #是否启用redis enabled: false 配置类: package xxxx.xxxx.xxxx.xxxxx; import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; @Component @Data public class RedisConfiguration { @Value("${redis.host}") private String host; @Value("${redis.port}") private int port; @Value("${redis.maxTotal}") private int maxTotal; @Value("${redis.password}") private String password; @Value("${redis.timeout}") private int timeout; @Value("${redis.maxIdle}") private int maxIdle; @Value("${redis.maxWaitMillis}") private int maxWaitMillis; @Value("${redis.enabled}") private Boolean enabled; public JedisPoolConfig jedisPoolConfig(){ JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxTotal(maxTotal); return jedisPoolConfig; } @Bean public JedisPool jedisPool(){ JedisPoolConfig jedisPoolConfig = jedisPoolConfig(); if(password==null||password.length()==0){ return new JedisPool(jedisPoolConfig,host,port,timeout); }else{ return new JedisPool(jedisPoolConfig,host,port,timeout,password); } } } 工具类: package com.alibaba.kos.data.hub.datahub.redis; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import lombok.extern.slf4j.Slf4j; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; @Component @Slf4j public class RedisUtil{ @Autowired private RedisConfiguration redisConfiguration; private JedisPool getJedisPool(){ return redisConfiguration.jedisPool(); } /** * <p> * 通过key获取储存在redis中的value * </p> * <p> * 并释放连接 * </p> * * @param key * @return 成功返回value 失败返回null */ public String get(String key){ if(!redisConfiguration.getEnabled()){return null;} String value = null; Jedis jedis = null; try{ jedis = getJedisPool().getResource(); value = jedis.get(key); }catch (Exception e){ log.error(e.getMessage()); }finally { returnResource(jedis); } return value; } /** * <p> * 向redis存入key和value,并释放连接资源 * </p> * <p> * 如果key已经存在 则覆盖 * </p> * * @param key * @param value * @param * @return 成功 返回OK 失败返回 0 */ public String set(String key, String value) { if(!redisConfiguration.getEnabled()){return null;} Jedis jedis = null; try { jedis = getJedisPool().getResource(); return jedis.set(key, value); } catch (Exception e) { log.error(e.getMessage()); return "0"; } finally { returnResource(jedis); } } /** * 返还到连接池 * @param jedis */ public static void returnResource(Jedis jedis) { if (jedis != null) { jedis.close(); } } } 使用方法: @Autowired private RedisUtil redisUtil; 引入的包: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> |
|
来自: 新用户57365882 > 《待分类》