privateRedisTemplate redisTemplate;
//=============================common============================/*** 指定缓存失效时间**@paramkey键*@paramtime时间(秒)*@return{@linkBoolean}*/@Overridepublic booleanexpire(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代表为永久有效*/@Overridepublic longgetExpire(String key) {
returnredisTemplate.getExpire(key, TimeUnit.SECONDS);
}
/*** 判断key是否存在**@paramkey键*@returntrue 存在 false不存在*/@Overridepublic booleanhasKey(String key) {
try{
returnredisTemplate.hasKey(key);
} catch(Exception e) {
e.printStackTrace();
return false;
}
}
/*** 删除缓存**@paramkey可以传一个值 或多个*/@Overridepublic voiddel(String... key) {
if(key != null&& key.length> 0) {
if(key.length== 1) {
redisTemplate.delete(key[0]);
} else{
redisTemplate.delete(CollectionUtil.arrayToList(key));
}
}
}
//============================String=============================/*** 普通缓存获取**@paramkey键*@return值*/@OverridepublicObject get(String key) {
returnkey == null? null: redisTemplate.opsForValue().get(key);
}
/*** 普通缓存放入**@paramkey键*@paramvalue值*@returntrue成功 false失败*/@Overridepublic 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 失败*/@Overridepublic booleanset(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*/@Overridepublic longincr(String key, longdelta) {
if(delta < 0) {
throw newRuntimeException("递增因子必须大于0");
}
returnredisTemplate.opsForValue().increment(key, delta);
}
/*** 递减**@paramkey键*@paramdelta要减少几(小于0)*@return*/@Overridepublic longdecr(String key, longdelta) {
if(delta < 0) {
throw newRuntimeException("递减因子必须大于0");
}
returnredisTemplate.opsForValue().increment(key, -delta);
}
//================================Map=================================/*** HashGet**@paramkey键 不能为null*@paramitem项 不能为null*@return值*/@OverridepublicObject hget(String key, String item) {
returnredisTemplate.opsForHash().get(key, item);
}
/*** 获取hashKey对应的所有键值**@paramkey键*@return对应的多个键值*/@OverridepublicMap hmget(String key) {
returnredisTemplate.opsForHash().entries(key);
}
/*** HashSet**@paramkey键*@parammap对应多个键值*@returntrue 成功 false 失败*/@Overridepublic booleanhmset(String key, Map map) {
try{
redisTemplate.opsForHash().putAll(key, map);
return true;
} catch(Exception e) {
e.printStackTrace();
return false;
}
}
/*** HashSet 并设置时间**@paramkey键*@parammap对应多个键值*@paramtime时间(秒)*@returntrue成功 false失败*/@Overridepublic booleanhmset(String key, Map map, longtime) {
try{
redisTemplate.opsForHash().putAll(key, map);
if(time > 0) {
expire(key, time);
}
return true;
} catch(Exception e) {
e.printStackTrace();
return false;
}
}
/*** 向一张hash表中放入数据,如果不存在将创建**@paramkey键*@paramitem项*@paramvalue值*@returntrue 成功 false失败*/@Overridepublic booleanhset(String key, String item, Object value) {
try{
redisTemplate.opsForHash().put(key, item, value);
return true;
} catch(Exception e) {
e.printStackTrace();
return false;
}
}
/*** 向一张hash表中放入数据,如果不存在将创建**@paramkey键*@paramitem项*@paramvalue值*@paramtime时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间*@returntrue 成功 false失败*/@Overridepublic booleanhset(String key, String item, Object value, longtime) {
try{
redisTemplate.opsForHash().put(key, item, value);
if(time > 0) {
expire(key, time);
}
return true;
} catch(Exception e) {
e.printStackTrace();
return false;
}
}
/*** 删除hash表中的值**@paramkey键 不能为null*@paramitem项 可以使多个 不能为null*/@Overridepublic voidhdel(String key, Object... item) {
redisTemplate.opsForHash().delete(key, item);
}
/*** 判断hash表中是否有该项的值**@paramkey键 不能为null*@paramitem项 不能为null*@returntrue 存在 false不存在*/@Overridepublic booleanhHasKey(String key, String item) {
returnredisTemplate.opsForHash().hasKey(key, item);
}
/*** hash递增 如果不存在,就会创建一个 并把新增后的值返回**@paramkey键*@paramitem项*@paramby要增加几(大于0)*@return*/@Overridepublic doublehincr(String key, String item, doubleby) {
returnredisTemplate.opsForHash().increment(key, item, by);
}
/*** hash递减**@paramkey键*@paramitem项*@paramby要减少记(小于0)*@return*/@Overridepublic doublehdecr(String key, String item, doubleby) {
returnredisTemplate.opsForHash().increment(key, item, -by);
}
//============================set=============================/*** 根据key获取Set中的所有值**@paramkey键*@return*/@OverridepublicSet sGet(String key) {
try{
returnredisTemplate.opsForSet().members(key);
} catch(Exception e) {
e.printStackTrace();
return null;
}
}
/*** 根据value从一个set中查询,是否存在**@paramkey键*@paramvalue值*@returntrue 存在 false不存在*/@Overridepublic booleansHasKey(String key, Object value) {
try{
returnredisTemplate.opsForSet().isMember(key, value);
} catch(Exception e) {
e.printStackTrace();
return false;
}
}
/*** 将数据放入set缓存**@paramkey键*@paramvalues值 可以是多个*@return成功个数*/@Overridepublic longsSet(String key, Object... values) {
try{
returnredisTemplate.opsForSet().add(key, values);
} catch(Exception e) {
e.printStackTrace();
return0;
}
}
/*** 将set数据放入缓存**@paramkey键*@paramtime时间(秒)*@paramvalues值 可以是多个*@return成功个数*/@Overridepublic longsSetAndTime(String key, longtime, Object... values) {
try{
Long count = redisTemplate.opsForSet().add(key, values);
if(time > 0) {
expire(key, time);
}
returncount;
} catch(Exception e) {
e.printStackTrace();
return0;
}
}
/*** 获取set缓存的长度**@paramkey键*@return*/@Overridepublic longsGetSetSize(String key) {
try{
returnredisTemplate.opsForSet().size(key);
} catch(Exception e) {
e.printStackTrace();
return0;
}
}
/*** 移除值为value的**@paramkey键*@paramvalues值 可以是多个*@return移除的个数*/@Overridepublic longsetRemove(String key, Object... values) {
try{
Long count = redisTemplate.opsForSet().remove(key, values);
returncount;
} catch(Exception e) {
e.printStackTrace();
return0;
}
}
//===============================list=================================/*** 获取list缓存的内容**@paramkey键*@paramstart开始*@paramend结束 0 到 -1代表所有值*@return*/@OverridepublicList lGet(String key, longstart, longend) {
try{
returnredisTemplate.opsForList().range(key, start, end);
} catch(Exception e) {
e.printStackTrace();
return null;
}
}
/*** 获取list缓存的长度**@paramkey键*@return*/@Overridepublic longlGetListSize(String key) {
try{
returnredisTemplate.opsForList().size(key);
} catch(Exception e) {
e.printStackTrace();
return0;
}
}
/*** 通过索引 获取list中的值**@paramkey键*@paramindex索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推*@return*/@OverridepublicObject lGetIndex(String key, longindex) {
try{
returnredisTemplate.opsForList().index(key, index);
} catch(Exception e) {
e.printStackTrace();
return null;
}
}
/*** 将list放入缓存**@paramkey键*@paramvalue值*@return*/@Overridepublic booleanlSet(String key, Object value) {
try{
redisTemplate.opsForList().rightPush(key, value);
return true;
} catch(Exception e) {
e.printStackTrace();
return false;
}
}
/*** 将list放入缓存**@paramkey键*@paramvalue值*@paramtime时间(秒)*@return*/@Overridepublic booleanlSet(String key, Object value, longtime) {
try{
redisTemplate.opsForList().rightPush(key, value);
if(time > 0) {
expire(key, time);
}
return true;
} catch(Exception e) {