RedisUtils工具类
packagecom。chen。utils;
importorg。springframework。beans。factory。annotation。Autowired;
importorg。springframework。beans。factory。annotation。Qualifier;
importorg。springframework。data。redis。core。RedisTemplate;
importorg。springframework。stereotype。Component;
importorg。springframework。util。CollectionUtils;
importjava。util。Collection;
importjava。util。List;
importjava。util。Map;
importjava。util。Set;
importjava。util。concurrent。TimeUnit;
Component
publicfinalclassRedisUtil{
Autowired
privateRedisTemplateString,ObjectredisTemplate;
指定缓存失效时间
paramkey键
paramtime时间(秒)
return
publicbooleanexpire(Stringkey,longtime){
try{
if(time0){
redisTemplate。expire(key,time,TimeUnit。SECONDS);
}
returntrue;
}catch(Exceptione){
returnfalse;
}
}
根据key获取过期时间
paramkey键不能为null
return时间(秒)返回0代表永久有效
publiclonggetExpire(Stringkey){
returnredisTemplate。getExpire(key,TimeUnit。SECONDS);
}
判断key是否存在
paramkey键
returnture存在false不存在
publicbooleanhasKey(Stringkey){
try{
returnredisTemplate。hasKey(key);
}catch(Exceptione){
returnfalse;
}
}
删除缓存
paramkey可以传一个值或者多个值
SuppressWarnings(unchecked)
publicvoiddel(String。。。key){
if(key!nullkey。length0){
if(key。length1){
redisTemplate。delete(key〔0〕);
}else{
redisTemplate。delete((Collection)CollectionUtils。arrayToList(key));
}
}
}
String
普通缓存获取
paramkey键
return值
publicObjectget(Stringkey){
returnkeynull?null:redisTemplate。opsForValue()。get(key);
}
普通缓存放入
paramkey键
paramvalue值
returnturn成功false失败
publicbooleanset(Stringkey,Objectvalue){
try{
redisTemplate。opsForValue()。set(key,value);
returntrue;
}catch(Exceptione){
returnfalse;
}
}
普通缓存放入并设置时间
paramkey键
paramvalue值
paramtime时间(秒)time要大于0如果time小于0,将设置成无限制
returnturn成功false失败
publicbooleanset(Stringkey,Objectvalue,longtime){
try{
if(time0){
redisTemplate。opsForValue()。set(key,value,time,TimeUnit。SECONDS);
}else{
redisTemplate。opsForValue()。set(key,value);
}
returntrue;
}catch(Exceptione){
returnfalse;
}
}
递增
paramkey键
paramdelta值要增加几(大于0)
return
publiclongincr(Stringkey,longdelta){
if(delta0){
thrownewRuntimeException(递增因子必须大于0);
}
returnredisTemplate。opsForValue()。increment(key,delta);
}
递减
paramkey键
paramdelta值要减少几(大于0)
return
publiclongdecr(Stringkey,longdelta){
if(delta0){
thrownewRuntimeException(递减因子必须大于0);
}
returnredisTemplate。opsForValue()。decrement(key,delta);
}
Map
HashGet
paramkey键不能为null
paramitem项不能为null
return值
publicObjecthget(Stringkey,Stringitem){
returnredisTemplate。opsForHash()。get(key,item);
}
获取hashKey对应的所有键值
paramkey键
return对应的多个键值
publicMapObject,Objecthmget(Stringkey){
returnredisTemplate。opsForHash()。entries(key);
}
HashSet
paramkey键
parammap对应多个键值
returntrue成功false失败
publicbooleanhmset(Stringkey,MapString,Objectmap){
try{
redisTemplate。opsForHash()。putAll(key,map);
returntrue;
}catch(Exceptione){
e。printStackTrace();
returnfalse;
}
}
HashSet并设置时间
paramkey键
parammap对应多个键值
paramtime时间(秒)
returntrue成功false失败
publicbooleanhmset(Stringkey,MapString,Objectmap,longtime){
try{
redisTemplate。opsForHash()。putAll(key,map);
if(time0){
expire(key,time);
}
returntrue;
}catch(Exceptione){
e。printStackTrace();
returnfalse;
}
}
向一张hash表中放入数据,如果不存在将创建
paramkey键
paramitem项
paramvalue值
returntrue成功false失败
publicbooleanhset(Stringkey,Stringitem,Objectvalue){
try{
redisTemplate。opsForHash()。put(key,item,value);
returntrue;
}catch(Exceptione){
e。printStackTrace();
returnfalse;
}
}
向一张hash表中放入数据,如果不存在将创建
paramkey键
paramitem项
paramvalue值
paramtime时间(秒)注意:如果已存在的hash表有时间,这里将会替换原有的时间
returntrue成功false失败
publicbooleanhset(Stringkey,Stringitem,Objectvalue,longtime){
try{
redisTemplate。opsForHash()。put(key,item,value);
if(time0){
expire(key,time);
}
returntrue;
}catch(Exceptione){
e。printStackTrace();
returnfalse;
}
}
删除hash表中的值
paramkey键不能为null
paramitem项可以使多个不能为null
publicvoidhdel(Stringkey,Object。。。item){
redisTemplate。opsForHash()。delete(key,item);
}
判断hash表中是否有该项的值
paramkey键不能为null
paramitem项不能为null
returntrue存在false不存在
publicbooleanhHasKey(Stringkey,Stringitem){
returnredisTemplate。opsForHash()。hasKey(key,item);
}
hash递增如果不存在,就会创建一个并把新增后的值返回
paramkey键
paramitem项
paramby要增加几(大于0)
return
publicdoublehincr(Stringkey,Stringitem,doubleby){
returnredisTemplate。opsForHash()。increment(key,item,by);
}
hash递减
paramkey键
paramitem项
paramby要减少记(小于0)
return
publicdoublehdecr(Stringkey,Stringitem,doubleby){
returnredisTemplate。opsForHash()。increment(key,item,by);
}
set
根据key获取Set中的所有值
paramkey键
return
publicSetsGet(Stringkey){
try{
returnredisTemplate。opsForSet()。members(key);
}catch(Exceptione){
e。printStackTrace();
returnnull;
}
}
根据value从一个set中查询,是否存在
paramkey键
paramvalue值
returntrue存在false不存在
publicbooleansHasKey(Stringkey,Objectvalue){
try{
returnredisTemplate。opsForSet()。isMember(key,value);
}catch(Exceptione){
e。printStackTrace();
returnfalse;
}
}
将数据放入set缓存
paramkey键
paramvalues值可以是多个
return成功个数
publiclongsSet(Stringkey,Object。。。values){
try{
returnredisTemplate。opsForSet()。add(key,values);
}catch(Exceptione){
e。printStackTrace();
return0;
}
}
将set数据放入缓存
paramkey键
paramtime时间(秒)
paramvalues值可以是多个
return成功个数
publiclongsSetAndTime(Stringkey,longtime,Object。。。values){
try{
LongcountredisTemplate。opsForSet()。add(key,values);
if(time0)
expire(key,time);
returncount;
}catch(Exceptione){
e。printStackTrace();
return0;
}
}
获取set缓存的长度
paramkey键
return
publiclongsGetSetSize(Stringkey){
try{
returnredisTemplate。opsForSet()。size(key);
}catch(Exceptione){
e。printStackTrace();
return0;
}
}
移除值为value的
paramkey键
paramvalues值可以是多个
return移除的个数
publiclongsetRemove(Stringkey,Object。。。values){
try{
LongcountredisTemplate。opsForSet()。remove(key,values);
returncount;
}catch(Exceptione){
e。printStackTrace();
return0;
}
}
list
获取list缓存的内容
paramkey键
paramstart开始
paramend结束0到1代表所有值
return
publicListlGet(Stringkey,longstart,longend){
try{
returnredisTemplate。opsForList()。range(key,start,end);
}catch(Exceptione){
e。printStackTrace();
returnnull;
}
}
获取list缓存的长度
paramkey键
return
publiclonglGetListSize(Stringkey){
try{
returnredisTemplate。opsForList()。size(key);
}catch(Exceptione){
e。printStackTrace();
return0;
}
}
通过索引获取list中的值
paramkey键
paramindex索引index0时,0表头,1第二个元素,依次类推;index0时,1,表尾,2倒数第二个元素,依次类推
return
publicObjectlGetIndex(Stringkey,longindex){
try{
returnredisTemplate。opsForList()。index(key,index);
}catch(Exceptione){
e。printStackTrace();
returnnull;
}
}
将list放入缓存
paramkey键
paramvalue值
return
publicbooleanlSet(Stringkey,Objectvalue){
try{
redisTemplate。opsForList()。rightPush(key,value);
returntrue;
}catch(Exceptione){
e。printStackTrace();
returnfalse;
}
}
将list放入缓存
paramkey键
paramvalue值
paramtime时间(秒)
return
publicbooleanlSet(Stringkey,Objectvalue,longtime){
try{
redisTemplate。opsForList()。rightPush(key,value);
if(time0)
expire(key,time);
returntrue;
}catch(Exceptione){
e。printStackTrace();
returnfalse;
}
}
将list放入缓存
paramkey键
paramvalue值
return
publicbooleanlSet(Stringkey,Listvalue){
try{
redisTemplate。opsForList()。rightPushAll(key,value);
returntrue;
}catch(Exceptione){
e。printStackTrace();
returnfalse;
}
}
将list放入缓存
paramkey键
paramvalue值
paramtime时间(秒)
return
publicbooleanlSet(Stringkey,Listvalue,longtime){
try{
redisTemplate。opsForList()。rightPushAll(key,value);
if(time0)
expire(key,time);
returntrue;
}catch(Exceptione){
e。printStackTrace();
returnfalse;
}
}
根据索引修改list中的某条数据
paramkey键
paramindex索引
paramvalue值
return
publicbooleanlUpdateIndex(Stringkey,longindex,Objectvalue){
try{
redisTemplate。opsForList()。set(key,index,value);
returntrue;
}catch(Exceptione){
e。printStackTrace();
returnfalse;
}
}
移除N个值为value
paramkey键
paramcount移除多少个
paramvalue值
return移除的个数
publiclonglRemove(Stringkey,longcount,Objectvalue){
try{
LongremoveredisTemplate。opsForList()。remove(key,count,value);
returnremove;
}catch(Exceptione){
e。printStackTrace();
return0;
}
}
}
长安UNIT现代ix35领衔售价15万左右的紧凑型SUV推荐对于消费者来说,选购一款适合自身用车需求的SUV才是最重要的。随着国内车市的日渐成熟,在15万元的售价区间,有相当一部分极具性价比的车型。今天,我们就带来长安UNIT、现代ix……
电影井冈山道路杀青杨骏饰演井冈英雄王佐星关系5月18日讯日前,由井冈山西江月文化传媒有限公司出品,中央党校影视中心、江西电影制片厂等单位联合出品,总制片人刘建廷,总导演周耀杰,肖裕声、王玮担任编剧,郭广平、杨骏等主……
台铃抗疫影片在一起全国上映献礼最平凡的英雄星关系9月14日讯为致敬在抗疫面前无数个无名英雄,由杨戴源编剧,夜修华执导,电动车领跑品牌台铃倾情出品制作的2020抗疫微电影《在一起》在9月14日全网温暖上映。影片以抗击疫情……
电影物美价廉的摄影棚开机混搭风带来全新喜感近日,由北京千星影业出品并制作的喜剧电影《物美价廉的摄影棚》在北京怀柔正式开机。主创及演员悉数到场,领衔主演那聖岩、花钰杰,特别出演张倚诚、郑斯仁、彭波、刘蔚森,以及主演黄月、……
赵茜大章鱼上线挑战自我不停歇星关系9月7日讯9月4日,由天涌影业、凡酷文化出品,项华强执导,赵茜、刘牧、张皓承主演的动作特效冒险电影《大章鱼》在优酷视频全网独播。曾出演过灾难电影《鼠王》的赵茜,此次再次挑……
信条男主逆时空问候观众患信条后遗症掀二刷热潮由传奇导演克里斯托弗诺兰(ChristopherNolan)执导的最新原创科幻动作奇观大片《信条》(Tenet)全国热映中,上映第二日票房破亿。今日曝年度神作版预告,国内评论盛……
无线充PSE认证办理准备条件无线充PSE认证办理准备条件。无线充是利用电磁感应原理进行充电的设备,通过在发送和接收端各安置一个线圈,发送端线圈在电力的作用下向外界发出电磁信号,接收端线圈收到电磁信号并且将……
香精MSDS认证报告机构食品添加剂MSDS认证办理MSDS是什么?MSDS的英文全称为MaterialSafetyDataSheet直译为材料安全数据表。由于化学品运输基本都需要提供MSDS报告,MSDS报告基本都……
如何在学习中赢得毫不费力?随着气候的加温生活步调开始回归正轨职场上,校园里,居家中人人都在全身心地投入其中迎着暮春绽放精彩在暖春下的每一个角落,都有着学习的身影课堂上……
信条曝高分好评版预告片外媒盛赞诺兰最佳星关系9月1日讯由传奇导演克里斯托弗诺兰(ChristopherNolan)执导的最新原创科幻动作奇观大片《信条》(Tenet)将于9月4日本周五强势登陆中国内地大银幕,预售现……
2020北京国际电影节VR单元沉浸式剧场虚拟碰撞现实制造万人第十届北京国际电影节正在如火如荼的进行中,各种类型的展映为观众带来不同观影体验的同时,也展现了电影在历经百年发展之后,正在加速开拓自身的多元性和多种可能。本次落地北影节的VR单……
信条曝中国独家预告时空激战大开眼界诺兰出手复苏影市由传奇导演克里斯托弗诺兰(ChristopherNolan)执导的最新原创科幻动作奇观大片《信条》(Tenet)将于9月4日本周五强势登陆中国内地大银幕,预售现已全面开启。影片……