[使用IDEA创建一个SpringBoot工程路径:]https://blog.csdn.net/weixin_45423451/article/details/103137733
[基于JAVA的redis使用(Jedis-API):]https://blog.csdn.net/weixin_45423451/article/details/103138699
下来我们就用idea的操作redis:
1.在pom.xml中配置依赖:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.3</version>
</dependency>
2.在SpringBoot的application.properties配置文件中配置redis:
## REDIS (RedisProperties)
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=200
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=6000
3.配置JedisPool的配置类:
@Configuration
@EnableAutoConfiguration
@ConfigurationProperties
public class JedisConfig {
@Value("${spring.redis.database}")
private int database;
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
@Value("${spring.redis.password}")
private String password;
@Value("${spring.redis.timeout}")
private int timeout;
@Value("${spring.redis.pool.max-active}")
private int maxActive;
@Value("${spring.redis.pool.max-wait}")
private int maxWait;
@Value("${spring.redis.pool.max-idle}")
private int maxIdle;
@Value("${spring.redis.pool.min-idle}")
private int minIdle;
@Bean
public JedisPool redisPoolFactory() {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxIdle(maxIdle);
jedisPoolConfig.setMaxWaitMillis(maxWait);
jedisPoolConfig.setMaxTotal(maxActive);
jedisPoolConfig.setMinIdle(minIdle);
jedisPoolConfig.setTestOnBorrow(false);//jedis 第一次启动时,会报错
jedisPoolConfig.setTestOnReturn(true);
return new JedisPool(jedisPoolConfig, host, port, timeout, null, database);
}
}
4.JedisPool的使用(String类型):
@Component
public class JedisUtil {
private static JedisPool jedisPool;
@Autowired
public void setJedisPool(JedisPool jedisPool) {
JedisUtil.jedisPool = jedisPool;
}
/**
* 获取Jedis实例
*/
public static Jedis getJedis() {
if (jedisPool != null) {
return jedisPool.getResource();
} else {
return null;
}
}
/**
* 按key获取value
*/
public static Object getValue(String key) {
try (Jedis jedis = jedisPool.getResource()) {
return SerializationUtils.deserialize(jedis.get(key.getBytes()));
}
}
/**
* 按key设置value
*/
public static String setValue(String key, Object value) {
try (Jedis jedis = jedisPool.getResource()) {
return jedis.set(key.getBytes(), SerializationUtils.serialize(value));
}
}
/**
* 按key设置value,expiretime(秒)
*/
public static String setValue(String key, Object value, int expiretime) {
try (Jedis jedis = jedisPool.getResource()) {
String result = jedis.set(key.getBytes(), SerializationUtils.serialize(value));
if (Constant.OK.equals(result)) {
jedis.expire(key.getBytes(), expiretime);
}
return result;
}
}
/**
* 按key刪除
*/
public static Long del(String... key) {
try (Jedis jedis = jedisPool.getResource()) {
return jedis.del(key);
}
}
/**
* 检查key是否存在
*/
public static Boolean exists(String key) {
try (Jedis jedis = jedisPool.getResource()) {
return jedis.exists(key.getBytes());
}
}
/**
* 按key重新过期时间
*/
public static Long expire(String key, int seconds) {
try (Jedis jedis = jedisPool.getResource()) {
return jedis.expire(key.getBytes(), seconds);
}
}
}