最新要闻
- 世界今热点:层层梯田上红山荞麦播种忙 全产业链带动农民增收
- 【当前独家】AMD自杀式降价 讯景RX 7900 XT显卡到手5299元(首发7399)
- 男生说猫屎臭被头上扣饭?官方回应:已经处理
- 天天滚动:与K60 Ultra同台发!Redmi 2K新平板曝光:只要千元
- 外卖小哥从10多米高大桥跳水救人:见义勇为获奖3万、免费上大学
- 焦点热讯:中国第一条时速350铁路明日调图:动车组重联 运力翻倍
- 2023内蒙古师范大学附属中学英才计划招生简章
- 今日热搜:开放中国依然是外商投资高地
- 每日动态!晋升第一人口大国后 印度将成为全球第一大手机市场:多谢苹果
- 不是录播!梅西即将在淘宝开启首次直播
- 华为又背锅?理想粉丝暗指华为发动舆论攻击:李想出面澄清
- 亚运会倒计时101天!杭州开通“亚运号”定制专列
- 国内最畅销SUV排名出炉:特斯拉Model Y反超比亚迪宋Plus拿下第一
- 让电池新规为电动自行车加把“安全锁” 全球热点评
- 全球动态:21℃室温超导成果被美院士宣称复现!南大教授:有3点质疑
- 全球报道:吉利高管评理想学华为:华为是时代的产物 但时代变了
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
世界时讯:SpringBoot中Redis的基础使用
基础使用
首先引入依赖
org.springframework.boot spring-boot-starter-data-redis redis.clients jedis 2.9.0
然后在application.yml的spring下增加redis配置:
代码如下
(相关资料图)
redis: # Redis数据库索引(默认为0) database: 0 # Redis服务器地址 host: 127.0.0.1 # Redis服务器连接端口 port: 6379 password: "123456" jedis: pool: # 连接池最大连接数(使用负值表示没有限制) max-active: 8 # 连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: 1 # 连接池中的最大空闲连接 max-idle: 8 # 连接池中的最小空闲连接 min-idle: 0 # 连接超时时间(毫秒) timeout: 5000
然后在根包下创建一个service的文件夹加,然后在里面增加redis文件夹,redis文件夹里编写redis的基础操作函数。
编写IRedisService接口,编写增删改查函数,代码如下:
import java.util.Map;@Servicepublic interface IRedisService { /** * 加入元素 * @param key * @param value */ void setValue(String key, Mapvalue); /** * 加入元素 * @param key * @param value */ void setValue(String key, String value); /** * 加入元素 * @param key * @param value */ void setValue(String key, Object value); /** * 获取元素 * @param key */ Object getMapValue(String key); /** * 获取元素 * @param key */ Object getValue(String key);}
编写RedisServiceImpl实现,实现Redis的增删改查。
package com.example.dynamicdb.service.redis;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.ValueOperations;import org.springframework.stereotype.Service;import java.util.Map;import java.util.concurrent.TimeUnit;@Service("RedisServiceImpl")public class RedisServiceImpl implements IRedisService { public RedisServiceImpl(){} @Autowired private RedisTemplate redisTemplate; @Override public void setValue(String key, Mapvalue) { ValueOperations vo = redisTemplate.opsForValue(); vo.set(key, value); redisTemplate.expire(key, 1, TimeUnit.HOURS); } @Override public Object getValue(String key) { ValueOperations vo = redisTemplate.opsForValue(); return vo.get(key); } @Override public void setValue(String key, String value) { ValueOperations vo = redisTemplate.opsForValue(); vo.set(key, value); redisTemplate.expire(key, 1, TimeUnit.HOURS); } @Override public void setValue(String key, Object value) { ValueOperations vo = redisTemplate.opsForValue(); vo.set(key, value); redisTemplate.expire(key, 1, TimeUnit.HOURS); } @Override public Object getMapValue(String key) { ValueOperations vo = redisTemplate.opsForValue(); return vo.get(key); }}
然后创建一个RedisController,编写一个测试接口,如下:
@RestControllerpublic class RedisController { @Resource(name = "RedisServiceImpl")//使用resource实例化对象,name是指定实例化的类,用于一个接口多个类继承的情况 private IRedisService iRedisService; @PostMapping(value = "/Redis/TestRedis") @ApiOperation(value = "redis测试接口", notes = "redis测试接口", httpMethod = "POST") public String TestRedis(){ iRedisService.setValue("redis", "这是redis的测试数据"); Object redis = iRedisService.getValue("redis"); return redis.toString(); }}
redis缓存使用
首先创建一个config文件夹,然后创建一个RedisCacheConfig文件,代码如下:
import com.fasterxml.jackson.annotation.JsonAutoDetect;import com.fasterxml.jackson.annotation.PropertyAccessor;import com.fasterxml.jackson.databind.ObjectMapper;import org.springframework.cache.annotation.EnableCaching;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.cache.RedisCacheConfiguration;import org.springframework.data.redis.cache.RedisCacheManager;import org.springframework.data.redis.cache.RedisCacheWriter;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;import org.springframework.data.redis.serializer.RedisSerializationContext;import java.time.Duration;import java.util.HashMap;import java.util.Map;@EnableCaching@Configurationpublic class RedisCacheConfig { /** * 最新版,设置redis缓存过期时间 */ @Bean public RedisCacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) { return new RedisCacheManager( RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory), this.getRedisCacheConfigurationWithTtl( 60), // 默认策略,未配置的 key 会使用这个 this.getRedisCacheConfigurationMap() // 指定 key 策略 ); } private MapgetRedisCacheConfigurationMap() { Map redisCacheConfigurationMap = new HashMap<>(); //SsoCache和BasicDataCache进行过期时间配置 redisCacheConfigurationMap.put("messagCache", this.getRedisCacheConfigurationWithTtl(30 * 60)); //自定义设置缓存时间 redisCacheConfigurationMap.put("studentCache", this.getRedisCacheConfigurationWithTtl(60 )); return redisCacheConfigurationMap; } private RedisCacheConfiguration getRedisCacheConfigurationWithTtl(Integer seconds) { Jackson2JsonRedisSerializer
类名上有注解@Configuration,代表该类会在启动时加入进bean集合。
然后在RedisController下编写测试函数,如下:
@Autowired private SqlSession sqlSession; @GetMapping(value = "/Redis/TestRedisCache") @ResponseBody @DS("db2") @Cacheable(cacheNames = "userCache", key = "#id") @ApiOperation(value="查询单条记录",notes = "查询") public ListTestRedisCache(Integer id) { //读取第二个数据库的值 UserMapper mapper = sqlSession.getMapper(UserMapper.class); List users = mapper.test(); return users; }
使用@Cacheable注解缓存接口的返回值,cacheNames的值和key的值,组合起来成为是缓存中的键值对的key值,如下图。
----------------------------------------------------------------------------------------------------
到此,SpringBoot中Redis的基础使用就已经介绍完了。
代码已经传到Github上了,欢迎大家下载。
Github地址:https://github.com/kiba518/dynamicdb
----------------------------------------------------------------------------------------------------
注:此文章为原创,任何形式的转载都请联系作者获得授权并注明出处!若您觉得这篇文章还不错,请点击下方的【推荐】,非常感谢!
https://www.cnblogs.com/kiba/p/17480377.html
关键词:
世界时讯:SpringBoot中Redis的基础使用
利用 PHP 特性绕 WAF 测试 环球聚看点
linux-DNS域名解析
世界即时看!2种GaussDB(DWS)查看作业运行信息方式
收评:两市窄幅波动沪指微跌0.14% CPO概念股领涨 大消费主题反弹
热头条丨【新华500】新华500指数(989001)14日涨0.03%
世界今热点:层层梯田上红山荞麦播种忙 全产业链带动农民增收
【当前独家】AMD自杀式降价 讯景RX 7900 XT显卡到手5299元(首发7399)
男生说猫屎臭被头上扣饭?官方回应:已经处理
天天滚动:与K60 Ultra同台发!Redmi 2K新平板曝光:只要千元
外卖小哥从10多米高大桥跳水救人:见义勇为获奖3万、免费上大学
焦点热讯:中国第一条时速350铁路明日调图:动车组重联 运力翻倍
2023内蒙古师范大学附属中学英才计划招生简章
618大促|解析平台、商家和消费者必须面对的三大风险
【技术积累】Python中的NumPy库【二】|天天滚动
全球快资讯丨Springboot定时任务集成shedLock锁
今日热搜:开放中国依然是外商投资高地
每日动态!晋升第一人口大国后 印度将成为全球第一大手机市场:多谢苹果
不是录播!梅西即将在淘宝开启首次直播
华为又背锅?理想粉丝暗指华为发动舆论攻击:李想出面澄清
亚运会倒计时101天!杭州开通“亚运号”定制专列
国内最畅销SUV排名出炉:特斯拉Model Y反超比亚迪宋Plus拿下第一
天天快看点丨大文件上传功能在标签服务的简单应用和代码实现
Aurelia教程_编程入门自学教程_菜鸟教程-免费教程分享
让电池新规为电动自行车加把“安全锁” 全球热点评
全球动态:21℃室温超导成果被美院士宣称复现!南大教授:有3点质疑
全球报道:吉利高管评理想学华为:华为是时代的产物 但时代变了
全球今日报丨Vision Pro商标被华为注册!专家:苹果要么求华为和解 要么中国市场改名
王鸿薇反击林飞帆退选还推责任 毫无担当 每日视点
快看:0-500公里仅需20.16秒!布加迪火流星正式亮相勒芒赛场
锐龙7 7800X3D搭配A620主板实测:游戏性能依旧胜过i9-13900KS
能打过理想L7?丰田新款汉兰达上市:26.88万起-新资讯
焦点热讯:Nothing Phone (2) 定档7月11日:比亚迪代工
世界热讯:无惧A卡狠降价!英伟达RTX 4060国内上市时间曝光:2399元秒抢光?
理想汽车在重庆成立销售新公司,注册资本1000万|世界观天下
【世界速看料】读发布!设计与部署稳定的分布式系统(第2版)笔记02_停飞的代码异常
每日消息!经典webshell流量特征
华洋赛车北交所IPO成功过会:产品进入美国等50余个国家和地区 参与多项标准起草
全球规模最大!京东亚洲一号第100亿件智能包裹下线
短睡眠者可能“天赋异禀”:每天只需睡四五个小时
东莞暴雨 外卖小哥摔倒人车被水冲走:市民合力营救
最新快讯!特斯拉换电池价格曝光:最贵24.6万元一块 能买一辆奥迪
特斯拉Model Y在上海一大学完全拆解 沉浸教学“三电”原理
环球热点评!word文档如何打千分号 千分号在word上怎么打
数位 DP
【全球时快讯】深度学习应用篇-元学习[13]:元学习概念、学习期、工作原理、模型分类等
直播app源码技术之直播间内消息发送与接收的实现-世界今日讯
真实案例:Feign 切换 okhttp 无法生效,被老大骂的有点慌!
美国CPI进入下行趋势 黄金期货继续维持震荡 全球快看点
李想:很多友商那仨瓜俩枣的销量有啥可干的|天天速讯
男子熬夜喝冰镇饮料被送进ICU 医生从血里抽出一袋油脂:超标200倍 全球看点
环球讯息:西安现最牛司机 车尾标语3月撞7次!奔驰大G、奥迪都被撞过
世界新消息丨美国发布临时禁令:微软收购动视暴雪再次受阻
天津两处居民楼爆炸,致3死多伤!嫌疑人被抓获,作案工具是_环球新资讯
Canvas_绘制线段、圆形、文本、图像、视频、处理图像数据
【项目管理解决方案】上海道宁与Synami帮助您统一所有项目级别的信息,并使所有人轻松访问
Zabbix“专家坐诊”第195期问答汇总_当前看点
XenServer 7 GUI 虚拟机(VM)上的屏幕分辨率怎么提高? 环球简讯
入侵无线App盗用户资料 40岁男子被捕|观察
天天时讯:有无眉毛哪个更好看?哪吒CEO:“去掉眉毛”的哪吒GT将上市
携程梁建章建议:生三胎每月给五六千 给到18岁为止 速讯
15英寸MacBook Air首销破发!渠道价比官网便宜1000多|全球速看
新能源重卡 为何终将颠覆燃油重卡?
华为开发者大会2023早鸟票开售 498元起-全球最资讯
速讯:注意!绿心环线多路段将进行抓拍
MySQL性能分析及工具使用_今日热讯
演唱会买到“柱子票”,可以有更好的解决办法 全球要闻
PCIe 6.0还没用上:PCIe 7.0这就来了!x16速度高达512GB/s-世界滚动
175W功耗释放稳压64℃!铭瑄RTX 4060 Ti iCraft OC8G瑷珈显卡评测:二次元秀肌肉-环球观天下
为保护迎客松不让当地用户买木头、绿植?黄山回应
颠覆物理学!美国院士称复现室温超导 这还是骗局?
关注: 信用卡逾期停息挂账申请有什么条件?网贷逾期有什么影响?_当前热点
融创优化强制可转债方案 境外债重组方案获约近九成债权人支持
【读财报】游戏ETF透视:华夏基金规模、业绩领跑 华泰柏瑞、浦银安盛基金份额萎缩
南京十四所招聘官网_南京十四所_天天快资讯
20余省已公布高考查分时间:集中在6月下旬
卖1万多的15英寸MacBook Air 256GB SSD性能降级:不如上代
far away from home mp3下载百度网盘_far away from home歌词 天天短讯
95号汽油进入7元时代:国内油价接下来或还有降价空间!_天天信息
迷信进口屏幕电视:买回家发现大错特错了
HangFire进阶 当前资讯
ASP.NET Core MVC 从入门到精通之鉴权授权基础|今日最新
再也不用担心变量类型错误!学会JS中如何轻松检查变量类型_世界快看
武则天《升仙太子碑》 行草入碑敢为人先
中国特供显卡炒到20多万 英伟达赚麻了:有公司抢购70亿元订单-即时焦点
全球热头条丨大学期末划重点堪比发布会现场 学生举手机拍照 网友:很真实
科幻神作!三部《阿凡达》续集宣布推迟上映:第3部定档2025年
观天下!1152MB三级缓存天下无敌!AMD正式发布EPYC 9084X:96核心Zen4
突然!漫威多部新片宣布延期:《复仇者联盟5》《复仇者联盟6》再跳票1年_每日时讯
6月13日基金净值:信澳鑫安债券(LOF)最新净值1.009,跌0.1%
全球热点评!26岁零70天 Uzi成为LPL历史出场最年长的ADC选手
日本试运行核污染水排海设备 放射性物质将蔓延至全球海域
一男子挤痘后流血近1个小时 整个过程花费400抽面巾
梅西直播被吐槽上热搜前排 画面仅有一分钟引发大量网友不满
国产动漫《斗罗大陆2》即将开播 新史莱克七怪徐三石PV公布
埃兹拉·米勒出席《闪电侠》好莱坞活动 为官司缠身后的首次公开露面
云南金平县迎来蝴蝶集中羽化期 漫天飞舞犹如纷飞的落叶
辽宁一男子拔倒刺导致手指发炎感染 诊断为化脓性肉芽肿并缝了6针
为应对严重的黄牛倒卖问题 宝可梦社宣布新卡组将采用预购制
《碟中谍7》中国内地定档7月14日正式上映 汤姆·克鲁斯惊喜回归