【世界新视野】SpringBoot整合Redis实现热点数据缓存的示例代码
(资料图)
我们以IDEA + SpringBoot作为 Java中整合Redis的使用 的测试环境
首先,我们需要导入Redis的maven依赖
org.springframework.boot spring-boot-starter-data-redis
其次,我们需要在配置文件中配置你的Redis配置信息,我使用的是 .yml文件格式
# redis配置 spring: redis: # r服务器地址 host: 127.0.0.1 # 服务器端口 port: 6379 # 数据库索引(默认0) database: 0 # 连接超时时间(毫秒) timeout: 10s jedis: pool: # 连接池中的最大空闲连接数 max-idle: 8 # 连接池中的最小空闲连接数 min-idle: 0 # 连接池最大连接数(使用负值表示没有限制) max-active: 8 # 连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: -1
对 redis 做自定义配置
import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; @Configuration public class RedisConfigurer extends CachingConfigurerSupport { /** * redisTemplate 序列化使用的jdkSerializeable, 存储二进制字节码, 所以自定义序列化类 */ @Bean public RedisTemplateredisTemplate(LettuceConnectionFactory lettuceConnectionFactory) { // 配置redisTemplate RedisTemplate redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(lettuceConnectionFactory); // 设置序列化 Jackson2JsonRedisSerializer
然后,我们需要创建一个RedisUtil来对Redis数据库进行操作
package com.zyxx.test.utils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; /** * @ClassName RedisUtil * @Author * @Date 2019-08-03 17:29:29 * @Version 1.0 **/ @Component public class RedisUtil { @Autowired private RedisTemplatetemplate; /** * 读取数据 * * @param key * @return */ public String get(final String key) { return template.opsForValue().get(key); } /** * 写入数据 */ public boolean set(final String key, String value) { boolean res = false; try { template.opsForValue().set(key, value); res = true; } catch (Exception e) { e.printStackTrace(); } return res; } /** * 根据key更新数据 */ public boolean update(final String key, String value) { boolean res = false; try { template.opsForValue().getAndSet(key, value); res = true; } catch (Exception e) { e.printStackTrace(); } return res; } /** * 根据key删除数据 */ public boolean del(final String key) { boolean res = false; try { template.delete(key); res = true; } catch (Exception e) { e.printStackTrace(); } return res; } /** * 是否存在key */ public boolean hasKey(final String key) { boolean res = false; try { res = template.hasKey(key); } catch (Exception e) { e.printStackTrace(); } return res; } /** * 给指定的key设置存活时间 * 默认为-1,表示永久不失效 */ public boolean setExpire(final String key, long seconds) { boolean res = false; try { if (0 < seconds) { res = template.expire(key, seconds, TimeUnit.SECONDS); } } catch (Exception e) { e.printStackTrace(); } return res; } /** * 获取指定key的剩余存活时间 * 默认为-1,表示永久不失效,-2表示该key不存在 */ public long getExpire(final String key) { long res = 0; try { res = template.getExpire(key, TimeUnit.SECONDS); } catch (Exception e) { e.printStackTrace(); } return res; } /** * 移除指定key的有效时间 * 当key的有效时间为-1即永久不失效和当key不存在时返回false,否则返回true */ public boolean persist(final String key) { boolean res = false; try { res = template.persist(key); } catch (Exception e) { e.printStackTrace(); } return res; } }
最后,我们可以使用单元测试来检测我们在RedisUtil中写的操作Redis数据库的方法
package com.zyxx.test; import com.zyxx.test.utils.RedisUtil; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; @RunWith(SpringRunner.class) @SpringBootTest public class TestApplicationTest { @Resource private RedisUtil redisUtil; @Test public void setRedis() { boolean res = redisUtil.set("jay", "周杰伦 - 《以父之名》"); System.out.println(res); } @Test public void getRedis() { String res = redisUtil.get("jay"); System.out.println(res); } @Test public void updateRedis() { boolean res = redisUtil.update("jay", "周杰伦 - 《夜的第七章》"); System.out.println(res); } @Test public void delRedis() { boolean res = redisUtil.del("jay"); System.out.println(res); } @Test public void hasKey() { boolean res = redisUtil.hasKey("jay"); System.out.println(res); } @Test public void expire() { boolean res = redisUtil.setExpire("jay", 100); System.out.println(res); } @Test public void getExpire() { long res = redisUtil.getExpire("jay"); System.out.println(res); } @Test public void persist() { boolean res = redisUtil.persist("jay"); System.out.println(res); } }推荐使用Redis客户端(redis-desktop-manager)来查看Redis数据库中的数据至此,我们在日常项目中整合Redis的基本使用操作就完成了,但在实际项目中,可能会涉及到更复杂的用法,可以根据你的业务需求调整Redis的使用即可。
到此这篇关于SpringBoot中整合Redis实现热点数据缓存的文章就介绍到这了,更多相关SpringBoot热点数据缓存内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
标签:

【世界新视野】SpringBoot整合Redis实现热点数据缓存的示例代码
2023-06-24

假期最后一天,河南北部、中东部高温继续 资讯推荐
2023-06-24

7月1日起全国铁路调图 广西铁路客货运输品质进一步提升-世界报资讯
2023-06-24

消息!2023年6月24日正十八烷价格最新行情预测
2023-06-24

公开点赞普尔,勇士最大内鬼暴露!逼宫球队卖他,离队第3人诞生 环球报资讯
2023-06-24

端午假期不文明行为“煞风景”_环球新视野
2023-06-24

萱的意思及寓意为什么会是凶?_萱的意思
2023-06-24

北方高温何时减弱?南方降雨间歇期何时到来?一文了解 世界热文
2023-06-24

高职单招的面试问题_高职单招面试问题及答案
2023-06-24

北京发布高温红色预警_世界焦点
2023-06-24
假期最后一天,河南北部、中东部高温继续 资讯推荐
7月1日起全国铁路调图 广西铁路客货运输品质进一步提升-世界报资讯
消息!2023年6月24日正十八烷价格最新行情预测
公开点赞普尔,勇士最大内鬼暴露!逼宫球队卖他,离队第3人诞生 环球报资讯
端午假期不文明行为“煞风景”_环球新视野
萱的意思及寓意为什么会是凶?_萱的意思
北方高温何时减弱?南方降雨间歇期何时到来?一文了解 世界热文
高职单招的面试问题_高职单招面试问题及答案
北京发布高温红色预警_世界焦点
出厂编号怎么看_出厂编号-天天关注
宋智勇
天天新动态:阿东说金:黄金1914多单数钱,完美收尾
球形孔明锁怎么拆图解_球形锁怎么拆图解 每日热闻
白城南部、松原南部、延边南部有雷电天气
抽组词_抽组词有哪些
当前头条:中央气象台继续发布暴雨黄色预警:广西、广东、上海等地局部有大暴雨
长春特色美食小吃介绍_长春特色小吃有哪些
新动态:联通光猫怎么设置断网时间(联通光猫断网时间设置方法)
小苏打清洗玻璃小妙招_小苏打擦玻璃怎么用 天天精选
这个专栏,上线!
我轰炸机飞临美航母意义重大
节日送祝福 情暖老人心 世界热点评
我国累计招收博士后约34万人(新数据 新看点)
二分法c语言程序详解 用C语言实现约分最简分式
西安铁警护航旅客端午假期平安出行 天天热点
我的世界4d皮肤白虎雷泽_谁有我的世界4D皮肤展开图吗 环球热点
端午假期首日,泰安接待游客7.97万人次 全市假日文化和旅游市场文明有序
今天开始到6月底 马·羊·蛇 三生肖 吉星的庇护,财神爷的关照,_焦点简讯
罗马诺:国米将阿斯皮利奎塔列入今夏引援目标,已与切尔西谈判


- 天天热点评!第三季度西欧PC市场遇冷:笔记本电脑、台式机和工作站总出货量同比下降22%
- 捷强装备(300875.SZ):减持期已过半、中金卓誉未减持公司股份_热门看点
- 国家卫健委:19日新增本土确诊2656例
- 用于65W电源应用的超低待机能耗方案
- 达意隆:公司的机器人产品主要应用于食品、饮料、日化等行业
- “大胃王”创始人被批捕,吃播界的“卷”仍在继续
- 福将!迪马利亚第63分钟被换下:国家队生涯谢幕,自1966年以来,首位在世界杯决赛制造点球和进球的球员
- 浓眉25+8摔伤惊魂仍坚持 他一下场湖人攻防全崩
- 要闻速递:塔里木油田:“北气南调”保供南疆
- 【天天新要闻】中鼎股份: 关于获得供应商项目定点书的公告
- 网络中国节·端午|粽叶飘香迎端午
- 播报:世体:北方三强+维拉有意,穆尼耶不愿再苦等巴萨
- 环球新资讯:花旗:维持Boston Scientific(BSX.US)买入评级
- 本有机会以极小的代价送走莫里斯,快船却选择了放弃?_世界滚动
- 建平县发布高温橙色预警
- 宁夏银川烧烤店爆炸事故发布会召开,与会人员默哀
- 生产主管工作职责和任务_生产主管工作职责
- 全国五子棋团体锦标赛在湖北十堰开赛
- 河南省有多少个县和县级市_河南省有多少个县
- 天天消息!兴仁市:浓情正端午 粽香飘“安和”
- 焦点信息:城市道路工程设计技术措施
- 在qq被人网暴,被骂娘炮,父母被侮辱怎么办
- 高超音速导弹一发入魂,乌决策中心成废墟,普京下狠手令北约忌惮|环球精选
- 天天亮点!端午节只能道“安康”?专家解读来了
- 捐给母校10万元后,王若妍还有个计划
- 玉博会商网_玉林玉博会晚上开馆时间
- 环球观察:至纯科技:6月21日融资买入1482.27万元,融资融券余额2.24亿元
- 海南企业拆迁怎么补偿|当前热文
- 农行利息计算器在线计算_农行利息_世界今热点
- 乌贼和章鱼的区别在哪_乌贼和章鱼的区别
- 环球微资讯!市中西医结合医院急诊科发展迈大步
- 天天快资讯:银行保函的种类(保函的种类)
- 怎么在图片上插入指北针_怎么在图片上插入图片 环球关注
- 世界看热讯:小型高尔夫球场(关于小型高尔夫球场介绍)
- 中国证监会发文深化债券注册制改革 速递
- 欧盟新电池法引行业热议:碳足迹核算体系需国际互认 电池护照实施将面临三大挑战-世界热头条
- 易纬集团(03893.HK)委任梁士锋为执行董事及财务董事_天天快资讯
- 6月21日能源要闻:国家能源集团管理层调整!
- 快看:中远海运国际(00517)6月21日斥资37.45万港元回购15万股
- 【世界报资讯】投服中心联合北京证监局举办投保专题调研座谈会
- 四川省2023年养老金上调方案细则和退休职工涨工资新消息(预估)
- 关于沙雪黑人的信息
- 上海发布文旅元宇宙新赛道行动方案 力争2025年产业规模突破500亿元|焦点速看
- 总书记的人民情怀|“城市管理应该像绣花一样精细”
- 【全球新要闻】2023西藏高考分数线出炉 艺术类分数线最新公布
- 话剧《初步举证》推中文版 主演辛芷蕾与你相约成都端午假期
- 热门:海南侨乡博鳌开展端阳旅游文化节展示侨文化
- 环球新动态:村里的球赛何以火起来
- 广东端午出行指引来了,今日离穗尽量避开沈海高速!
- 环球新消息丨全新奔驰E级惊艳亮相 内外升级年轻化
- 《最终幻想16》新游戏+模式演示视频流出 可体验最终幻想模式-当前消息
- 股票行情快报:信达证券(601059)6月20日主力资金净卖出3708.44万元
- 已婚女人想撩你,会有这三个动作,男人别不懂_天天微动态
- 2023山东省养老金上调方案细则和养老金调整最新消息(预估)
- 太阳记者:球队有兴趣续约克雷格和奥科吉
- 全球今日报丨吴宝俊:加强数理化教育是原则性问题
- 王艳玲到荆州、潜江等地 调研完善“双联系”机制和小龙虾产业发展_世界即时看
- 昌乐宝石鉴定机构谈谈为什么土豪都喜欢珠宝品牌
- 常州2023端午龙舟比赛时间表-全球聚看点
- 全球焦点!四川省什邡市市场监管局开展端午节前食品安全专项检查