如何整合
SpringBoot是目前非常流行的JavaWeb开发框架,Redis是非关系型数据库的一种,以键值对的形式存储。Spring对Redis的支持是通过SpringDataRedis来实现的,给我们提供了RedisTemplate和StringRedisTemplate两种模板来操作数据。SpringBoot框架也提供了对Redis的支持,下面我们来讲一下SpringBoot框架整合Redis的步骤。
工具材料
IntelliJIDEA
操作方法
01:hrSpringBoot整合Redis我们需要添加依赖的jar包,springbootstarterdataredis中包含spring和redis相关的jar包,jedis作为redis的客户端也需要添加到工程中,SpringBoot的版本信息在父pom中已指定,子模块中的spring相关的jar包无需另外指定。
lt;dependencygt;lt;dependencygt;
lt;groupidgt;org。springframework。bootlt;groupidgt;
lt;artifactidgt;springbootstarterdataredislt;artifactidgt;
lt;dependencygt;lt;dependencygt;
lt;groupidgt;redis。clientslt;groupidgt;
lt;artifactidgt;jedislt;artifactidgt;
lt;versiongt;3。0。0m1lt;versiongt;
02:hrSpringBoot会根据application。properties中的配置对Redis的属性进行自动配置,并注入到RedisProperties类中。在application。properties配置文件中这些属性都是以spring。redis为前缀的,值得注意的是在SpringBoot1。5。x版本中默认的Redis客户端是jedis,因此在配置文件中无需指定,如下图所示。
03:hrSpringBoot1。5。x版本的整合配置网上可以搜索大量的文章,然而SpringBoot2。x版本的整合资料却非常少,甚至提供的配置不能正常使用,因此本文主要讲解SpringBoot2。x整合Redis以及Redis的使用情况。springboot2。x版本有jedis和lettuce两种客户端,因此我们必须要去指定使用哪一种客户端,两个客户端的配置如下图所示,本文使用的是Jedis客户端连接池,具体的配置如下。
Redis数据库索引(默认为0)
spring。redis。database0
Redis服务器地址
spring。redis。host127。0。0。1
Redis服务器连接端口
spring。redis。port6379
Redis服务器连接密码(默认为空)
spring。redis。passwordxylx1。t!
配置jedis连接池
连接池最大连接数(使用负值表示没有限制)
spring。redis。jedis。pool。maxactive8
连接池最大阻塞等待时间(使用负值表示没有限制)
spring。redis。jedis。pool。maxwait1ms
连接池中的最大空闲连接
spring。redis。jedis。pool。maxidle8
连接池中的最小空闲连接
spring。redis。jedis。pool。minidle0
连接超时时间(毫秒)
spring。redis。timeout5000ms
由配置我们可以看到springboot2。x版本时间设置需要加单位ms,因为参数的类型为Duration。另外spring。redis。timeout尽量不要配置0,否则可能会出现io。lettuce。core。RedisCommandTimeoutException:Commandtimedout超时错误。
04:hr配置文件编辑完成后,我们开始编写代码实现Redis数据的存储和读取。我们创建一个RedisUtil工具类,该类使用Component注解表示交由Spring管理,StringRedisTemplate是Spring提供的,可以使用Autowired注解直接注入,接下来便可以书写存和取的代码了。
Component
publicclassRedisUtil{
Autowired
privateStringRedisTemplateredisTemplate;
存字符串
paramkey缓存键
paramvalue缓存值
paramexpireTime过期时间(s)
publicvoidsetString(Stringkey,Stringvalue,intexpireTime){
ValueOperationslt;string,stringgt;opsredisTemplate。opsForValue();lt;string,gt;
if(expireTime!0){
ops。set(key,value,expireTime,TimeUnit。SECONDS);
}else{
ops。set(key,value);
}
}
取字符串
paramkey缓存键
return缓存值
publicStringgetString(Stringkey){
ValueOperationslt;string,stringgt;opsthis。redisTemplate。opsForValue();lt;string,gt;
returnops。get(key);
}
05:hr接下来我们编写Controller层代码去调用RedisUtil工具类,实现数据的存储和读取,代码比较简单可以参考下图。若想验证Redis是否可用,还需要编写启动类,如下图所示。
06:hr由上图可看到我们编写了一个post请求用于存储字符串,get请求用于取出字符串。启动类通过main方法启动应用,接下来我们使用postman去模拟浏览器调用post和get请求,由下图可以看到Redis存储的数据成功被取出。
07:hr接下来我们介绍Jedis,这是一个封装了Redis的客户端,在SpringBoot整合Redis的基础上,可以提供更简单的API操作。因此我们需要配置JedisPool的Bean,代码如下,其中Configuration注解表明这是一个配置类,我们在该类中注入RedisProperties,并且使用Bean注解指定JedisPool。
Configuration
publicclassRedisConfiguration{
Autowired
privateRedisPropertiesproperties;
Bean
publicJedisPoolgetJedisPool(){
JedisPoolConfigconfignewJedisPoolConfig();
config。setMaxIdle(properties。getJedis()。getPool()。getMaxIdle());
config。setMaxTotal(properties。getJedis()。getPool()。getMaxActive());
config。setMaxWaitMillis(properties。getJedis()。getPool()。getMaxWait()。toMillis());
JedisPoolpoolnewJedisPool(config,properties。getHost(),
properties。getPort(),100,
properties。getPassword(),properties。getDatabase());
returnpool;
}
}
08:hr接下来我们编辑JedisUtil工具类,通过SpringBoot容器的Component注解来自动创建,并且注入JedisPool,使用jedisPool。getResource()方法来获取Jedis,并最终实现操作redis数据库,其代码如下。
Component
publicclassJedisUtil{
Autowired
JedisPooljedisPool;
获取key的value值
publicStringget(Stringkey){
JedisjedisjedisPool。getResource();
Stringstr;
try{
strjedis。get(key);
}finally{
try{
jedis。close();
}catch(Exceptione){
e。printStackTrace();
}
}
returnstr;
}
publicStringset(Stringkey,Stringvalue){
JedisjedisjedisPool。getResource();
Stringstr;
try{
strjedis。set(key,value);
}finally{
try{
jedis。close();
}catch(Exceptione){
e。printStackTrace();
}
}
returnstr;
}
}
09:hrJedisUtil工具类编写完成后,我们修改之前的RedisController,并注入JedisUtil,代码如下图所示。然后再用postman分别调用post和get接口,我们可以看到成功取到了新的key的value值。
特别提示
在SpringBoot整合Redis前本机需安装Redis,另外可以使用RedisDesktopManager这个Redis这个桌面管理工具查看Redis中的数据。
如何在重庆市查询人事档案如何在aclasstaghrefwiki10066dJzURGR3GQQ1。html重庆市a查询人事档案呢?今天小编为大家讲解一下。操作方法01:hr打开电脑,找到……
新规银行理财别说保本连收益都要交税了银行可以说是大家最信赖的金融平台了,存款放银行,买国债找银行背靠央妈,就能保本保息,衣食无忧了。曾经的你可以这样想想,但之后不行了!从今年开始,我国的资产管理产品要全面进……
领导力是每个人职场发展先决条件作者:涂满章谈起领导力,很多人或许会认为,这是领导的事情吧,我一个平头百姓,也不想当官,去扯这些干什么呢?有意义吗?不想当官没错,这反映的是个人价值追求,每个人都有……
怎么判断你的痛经是否正常世界上有将近半数的妇女都有痛经的问题,当中约有十分之一的人每个月会痛上一两天,甚至会影响工作和其他的活动。医学专业人士提醒女性读者,18岁以后仍有痛经,往往提示可能由妇科相关疾……
汉式婚礼流程汉式婚礼,是华夏汉族传统婚礼中场面大气磅礴,仪式庄严肃穆的一种。一般婚礼的整体结构分为三部分:婚前礼、正婚礼、婚后礼。一、汉式婚礼流程婚前礼婚前礼的基本流程:纳采、……
经典人生短句经典人生短句有哪些?关于人生的经典句子语录大家知道多少呢?下面就为大家收集了一些,赶紧去看看吧。一、经典人生短句1。其实人这一辈子活得是啥,活得就是自己尽兴。……
孩子出猪肝真的能预防近视吗在民间有这样的说法,孩子多吃猪肝可以预防近视,其实吃猪肝预防近视的说法是不科学的,为什么这么说呢?本文为你介绍!猪肝所含的营养物质主要是维生素A,很多人补充维生素A的时候……
袁尚的虚实真假解围战建安九年五月,过于自信的审配开始为他的失误付出巨大代价!首当其冲的当然是邺城无辜的百姓,紧接着的是可怜的守城士兵,态势如同孤岛的邺城彻底断绝了粮食供应之后,人们首先作战的……
红军长征苦战于小水最后八勇士高呼万岁跳崖红六军团在执行长征先遣任务的西征途中与敌人在通道县的小水大坡界发生激烈战斗,史称小水战斗。为了使红军主力顺利转移,8位红军战士战至最后一齐跳崖。此举跟《狼牙山五壮士》所描述的一……
五个法则帮助夫妻相处更和谐吵架不过三句话假装家里有客人。在一起生活久了,夫妻间的摩擦难免越来越多,最终可能导致夫妻感情受影响。美国着名临床心理学家哈里特勒娜博士在新书《婚姻法则:已婚和同居者的指导……
笑傲江湖任我行武功怎么样任我行武功厉害吗任我行,武学修为深不可测,是江湖上数一数二的人物。虽然名副其实的自大狂妄,专横骄傲,却也不只一味自大,拥有类似政治家的精明眼光与手腕。在练习吸星大法时走火入魔,导致其教主之位曾……
孩子不听话的原因有哪些1、宝宝的好奇心得不到满足宝宝好奇心强,对什么都要摸摸碰碰。如果你不理解这种好奇的探索心理,认为宝宝是在胡闹、调皮而限制他的行动,甚至训斥、打骂他,很容易引起宝宝不满,不……
浅谈如何做好典型选树工作摘要:典型是旗帜,是方向,是时代主旋律的领唱者。典型示范对国有企业思想政治教育、企业文化的传承起着重要的作用,我们应该充分认识到典型示范的重要意义,通过抓好选得准、叫得响、树得……
互助保险小心是坑在国外已经非常普遍的互助保险,在中国却一直是行走在法律边缘。虽然不断有政策支持互助保险的发展,但是没有无牌照之痛却让互助保险地位尴尬,对消费者利益保护和市场秩序维护带来安全隐患……
贵州茅台的财务异象及其解读摘要:20012015年贵州茅台股份有限公司的财务报告表明,一方面,贵州茅台具有超强的盈利能力和极好的市场表现;另一方面,贵州茅台持有的流动资产和货币资金很多,没有长期投资,资……
财政部部长刘昆发声减税降费是今年积极财政政策的主减税降费成了今年两会的热词。个税红包之后,3月5日,李克强作政府工作报告时送出全年减轻企业税收和社保缴费负担近2万亿元的大礼包。在李克强总理政府工作报告精神的指导下,财政……
党旗飘扬抗疫有我湖北青山热电公司(以下简称公司)电控分部党支部书记熊志辉,在抗击新冠肺炎疫情过程中始终坚持不忘初心、牢记使命,认真落实公司党委决策部署,带领电控分部党员和员工坚守岗位,冲锋在前……
一千零一夜读书笔记100字《一千零一夜》读书笔记(一)今天我一口气看完了《一千零一夜》这本书,书里的故事很吸引我,其中令我最喜欢的是关于航海家辛巴达的航海故事。我很佩服航海家辛巴达,……
如何跟女生自在聊天在本文中:让谈话保持自在当然,你很擅长穿过拥挤的房间,走到一位女生面前介绍自己来吸引她的注意。但是在几分钟后,你发现自己无话可说这种感觉怎么样?或者你想鼓起勇气跟这个女生……
泰戈尔名句年轻时,我的生命有如一朵花当春天的轻风来到她的门前乞求时,从她的丰盛中飘落一两片花瓣,她你从未感到这是损失。现在,韶华已逝,我的生命有如一个果子,已经没有什么东西可以分让,只等……
那村那人那事十七董青山的儿子董泉水在大张各庄姥姥家,渡过了四个春秋,姥爷张连之很喜欢小外甥,每逢去口东集镇卖粉条时,总是把泉水放在推车上,回家的时候总是买一些点心和瓜果。路过箭杆河岸时,泉水总……
红楼梦中的句经典名句看穿人性直指《aclasstaghrefwiki10510ddc1OpgIm0Y2。html红楼梦a》,中国古典四大名著之首,清代作家曹雪芹创作的章回体长篇小说,又名《石头记》《金玉缘》。……
针织衫搭配紧身裤秋季显瘦穿出高挑个儿amp;gt;amp;gt;amp;gt;针织衫搭配紧身裤LOOK1趁着天气还不是很寒冷的时候,针织衫可以像这样露肩穿,它会让您看上去性感又妩媚。黑色款经典百搭,而且很显……
兔子的围巾雪一直下着。森林深处,一座木房子里,仍温暖。屋里燃着火红的炭火。火炉前,兔子的脸照得通红。她看一眼一旁的两袋木炭,笑了。还在秋天时,她就准备好了这些木炭。门嘎……