packagecom.zxy.demo.redis;importjava.util.List;importjava.util.Map;importjava.util.Set;importjava.util.concurrent.TimeUnit;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.data.redis.core.RedisTemplate;importorg.springframework.stereotype.Component;importorg.springframework.util.CollectionUtils;/*** Redis工具类
*@authorZENG.XIAO.YAN
* @date 2018年6月7日*/@Componentpublic final classRedisUtil {
@Autowiredprivate RedisTemplateredisTemplate;//=============================common============================
/*** 指定缓存失效时间
*@paramkey 键
*@paramtime 时间(秒)
*@return
*/
public boolean expire(String key, longtime) {try{if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS);
}return true;
}catch(Exception e) {
e.printStackTrace();return false;
}
}/*** 根据key 获取过期时间
*@paramkey 键 不能为null
*@return时间(秒) 返回0代表为永久有效*/
public longgetExpire(String key) {returnredisTemplate.getExpire(key, TimeUnit.SECONDS);
}/*** 判断key是否存在
*@paramkey 键
*@returntrue 存在 false不存在*/
public booleanhasKey(String key) {try{returnredisTemplate.hasKey(key);
}catch(Exception e) {
e.printStackTrace();return false;
}
}/*** 删除缓存
*@paramkey 可以传一个值 或多个*/@SuppressWarnings("unchecked")public voiddel(String... key) {if (key != null && key.length > 0) {if (key.length == 1) {
redisTemplate.delete(key[0]);
}else{
redisTemplate.delete(CollectionUtils.arrayToList(key));
}
}
}//============================String=============================
/*** 普通缓存获取
*@paramkey 键
*@return值*/
publicObject get(String key) {return key == null ? null: redisTemplate.opsForValue().get(key);
}/*** 普通缓存放入
*@paramkey 键
*@paramvalue 值
*@returntrue成功 false失败*/
public booleanset(String key, Object value) {try{
redisTemplate.opsForValue().set(key, value);return true;
}catch(Exception e) {
e.printStackTrace();return false;
}
}/*** 普通缓存放入并设置时间
*@paramkey 键
*@paramvalue 值
*@paramtime 时间(秒) time要大于0 如果time小于等于0 将设置无限期
*@returntrue成功 false 失败*/
public boolean set(String key, Object value, longtime) {try{if (time > 0) {
redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
}else{
set(key, value);
}return true;
}catch(Exception e) {
e.printStackTrace();return false;
}
}/*** 递增
*@paramkey 键
*@paramdelta 要增加几(大于0)
*@return
*/
public long incr(String key, longdelta) {if (delta < 0) {throw new RuntimeException("递增因子必须大于0");
}returnredisTemplate.opsForValue().increment(key, delta);
}/*** 递减
*@paramkey 键
*@paramdelta 要减少几(小于0)
*@return
*/
public long decr(String key, longdelta) {if (delta < 0) {throw new RuntimeException("递减因子必须大于0");
}return redisTemplate.opsForValue().increment(key, -delta);
}//================================Map=================================
/*** HashGet
*@paramkey 键 不能为null</