/**
* redis工具类
*
* 实现工厂代码:
*
* @Configuration
* public class RedisConfig {
*
* @Bean
* public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory factory){
* RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
* redisTemplate.setConnectionFactory(factory);
* redisTemplate.setKeySerializer(new StringRedisSerializer());
* redisTemplate.setValueSerializer(new StringRedisSerializer());
* redisTemplate.setHashKeySerializer(new StringRedisSerializer());
* redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer());
* redisTemplate.afterPropertiesSet();
* return redisTemplate;
* }
* }
*
*/
@Component
public class RedisUtils {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
//################################### common ###########################################
/**
* 设置redis过期时间,
*
* @param key
* @param time 单位: second
* @return
*/
public boolean expire(String key, long time) {
try {
if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 获取redis过期时间,时间单位:second
*
* @param key
* @return
*/
public long getExpire(String key) {
return redisTemplate.getExpire(key, TimeUnit.SECONDS);
}
/**
* 刪除緩存,可以传一个或多个
*
* @param key
*/
public void delete(String... key) {
if (key != null && key.length > 0) {
if (key.length == 1) {
redisTemplate.delete(key[0]);
} else {
redisTemplate.delete(CollectionUtils.arrayToList(key));
}
}
}
//################################## String ###########################################
/**
* 存入redis中, 对应redis中string类型
*
* @param key
* @param value
* @return
*/
public boolean setString(String key, Object value) {
try {
redisTemplate.opsForValue().set(key, value);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 获取redis中缓存,对应redis中string类型
*
* @param key
* @return
*/
public Object getString(String key) {
return key == null ? null : redisTemplate.opsForValue().get(key);
}
/**
* 存入redis中,对应redis中的string类型, time为过期时间,time<0将设置无限期&#