添加Redis依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</dependency>
在yml文件添加配置
redis:
port: 6379
database: 2
timeout: 3000
maxWaitMillis: 3000
pool:
minIdle: 10
maxIdle: 20
maxTotal: 50
配置RedisTemplate
在Spring中,可以使用RedisTemplate类来操作Redis。可以通过配置类或XML配置文件来创建和配置RedisTemplate。以下是使用Java配置类的示例:
@SpringBootConfiguration
public class RedisConfig {
@Value("${redis.host}")
private String host;
@Value("${redis.port}")
private Integer port;
@Value("${redis.database}")
private int database;
@Value("${redis.maxWaitMillis}")
private long maxWaitMillis;
@Value("${redis.timeout}")
private int timeout;
@Value("${redis.pool.maxTotal}")
private Integer maxTotal;
@Value("${redis.pool.maxIdle}")
private Integer maxIdle;
@Value("${redis.pool.minIdle}")
private Integer minIdle;
@Bean //这个注解注入工厂的名称是方法名
public JedisPool jedisPoolFactory(){
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxIdle(maxIdle);//最大空闲连接
jedisPoolConfig.setMaxTotal(maxTotal);//最大连接数
jedisPoolConfig.setMinIdle(minIdle);//最小连接数
jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
// 连接耗尽时是否阻塞, false报异常,true阻塞直到超时, 默认true
jedisPoolConfig.setBlockWhenExhausted(true);
// 是否启用pool的jmx管理功能, 默认true
jedisPoolConfig.setJmxEnabled(true);
JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout,null,database);
return jedisPool;
}
}
创建RedisUtils工具类
@Slf4j
@Component
public class RedisUtils {
@Autowired
private JedisPool jedisPool;
/**
* 获取字符串元素
* @param key
* @return
*/
public String get(String key) {
String value=null;
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
value = jedis.get(key);
} catch (Exception e) {
log.error("", e);
} finally {
try {
jedis.close();
} catch (Exception e) {
log.error("", e);
}
}
return value;
}
/**
* set字符串元素
* @param key
* @return
*/
public void set(String key,String value) {
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
jedis.set(key,value);
} catch (Exception e) {
log.error("", e);
} finally {
try {
jedis.close();
} catch (Exception e) {
log.error("", e);
}
}
}
}