guavacache mysql_本地缓存google.guava及分布式缓存redis 随笔

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) {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值