SpringBoot中使用Redis的完整实例
一.在SpringBoot中使用Redis的一套军体拳
1.导包
org.springframework.boot spring-boot-starter-data-redis 2.2.0.RELEASE
2.导入工具类
packagecom.cbsd.util; importjava.util.concurrent.TimeUnit; importorg.springframework.beans.factory.annotation.Autowired; importorg.springframework.data.redis.core.HashOperations; importorg.springframework.data.redis.core.ListOperations; importorg.springframework.data.redis.core.RedisTemplate; importorg.springframework.data.redis.core.SetOperations; importorg.springframework.data.redis.core.ValueOperations; importorg.springframework.data.redis.core.ZSetOperations; importorg.springframework.stereotype.Component; importcom.alibaba.fastjson.JSON; /** *redisTemplate封装 * *@authorgxp */ @Component publicclassRedisUtil{ //privateLoggerlogger=LoggerFactory.getLogger(this.getClass()); @Autowired privateRedisTemplateredisTemplate; @Autowired privateValueOperations valueOperations; @SuppressWarnings("unused") @Autowired privateHashOperations hashOperations; @SuppressWarnings("unused") @Autowired privateListOperations listOperations; @SuppressWarnings("unused") @Autowired privateSetOperations setOperations; @SuppressWarnings("unused") @Autowired privateZSetOperations zSetOperations; /**默认过期时长,单位:秒*/ publicfinalstaticlongDEFAULT_EXPIRE=60*60*24; /**不设置过期时长*/ publicfinalstaticlongNOT_EXPIRE=-1; publicvoidset(Stringkey,Objectvalue,longexpire){ valueOperations.set(key,toJson(value)); if(expire!=NOT_EXPIRE){ redisTemplate.expire(key,expire,TimeUnit.SECONDS); } } publicvoidset(Stringkey,Objectvalue){ set(key,value,DEFAULT_EXPIRE); } public Tget(Stringkey,Class clazz,longexpire){ Stringvalue=valueOperations.get(key); if(expire!=NOT_EXPIRE){ redisTemplate.expire(key,expire,TimeUnit.SECONDS); } returnvalue==null?null:fromJson(value,clazz); } public Tget(Stringkey,Class clazz){ returnget(key,clazz,NOT_EXPIRE); } publicStringget(Stringkey,longexpire){ Stringvalue=valueOperations.get(key); if(expire!=NOT_EXPIRE){ redisTemplate.expire(key,expire,TimeUnit.SECONDS); } returnvalue; } publicStringget(Stringkey){ returnget(key,NOT_EXPIRE); } publicvoiddelete(Stringkey){ redisTemplate.delete(key); } /** *Object转成JSON数据 */ privateStringtoJson(Objectobject){ if(objectinstanceofInteger||objectinstanceofLong||objectinstanceofFloat|| objectinstanceofDouble||objectinstanceofBoolean||objectinstanceofString){ returnString.valueOf(object); } returnJSON.toJSONString(object); } /** *JSON数据,转成Object */ private TfromJson(Stringjson,Class clazz){ returnJSON.parseObject(json,clazz); } }
3.在SpringBoot的配置文件中配置redis的服务器
(1).yml配置文件中
spring: redis: open:true#是否开启redis缓存true开启false关闭 database:0 host:redis服务器地址 port:redis服务器端口号 password:redis服务器密码#密码(默认为空) timeout:15000#连接超时时长(毫秒) jedis: pool: max-active:1000#连接池最大连接数(使用负值表示没有限制) max-wait:-1#连接池最大阻塞等待时间(使用负值表示没有限制) max-idle:10#连接池中的最大空闲连接 min-idle:5#连接池中的最小空闲连接
(2).properties配置文件中
####连接redis非关系型数据库配置 spring.redis.host=redis服务器地址 spring.redis.password=redis服务器密码,默认为空 spring.redis.port=redis服务器端口号 spring.redis.timeout=20000//超时时间 spring.redis.database=6 spring.redis.lettuce.pool.min-idle=0 spring.redis.lettuce.pool.max-idle=3000 spring.redis.lettuce.pool.max-wait=10000 spring.redis.lettuce.pool.max-active=3000
4.使用
还是补上使用的方法吧
1.存入数据的方法
/** * *@paramkey同理map的key,可以根据对应的key取到对应的值 *@paramvalue要存入redis的数据 *@paramexpire超时时间,就是数据会在redis里面存多久,可以不传,就是永不超时 */ publicvoidset(Stringkey,Objectvalue,longexpire){ valueOperations.set(key,toJson(value)); if(expire!=NOT_EXPIRE){ redisTemplate.expire(key,expire,TimeUnit.SECONDS); } }
2.取出数据的方法
/** * *@paramkey存入数据时,设置的key,根据可以取到对应的数据 *@return */ publicStringget(Stringkey){ returnget(key,NOT_EXPIRE); }
3.还有个删除
就是调用delete方法,跟get方法一样传一个key过去,就可以删除对应的数据了
到此这篇关于SpringBoot中使用Redis的文章就介绍到这了,更多相关SpringBoot使用Redis内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。