版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第详解SpringBoot如何使用Redis和Redis缓存目录一、配置环境二、Redis的基本操作三、使用redis作缓存
一、配置环境
首先,先创建一个SpringBoot项目,并且导入Redis依赖,使用Jedis进行连接测试。
本人的Redis装在虚拟机里,直接切换到虚拟机中的安装目录,启动redis服务,打开redis-cli,如果你设置了密码,还要先输入密码。
cdredis安装目录
#启动redis
redis-server/etc/redis.conf
#进入redis
redis-cli
#如果你设置了密码
auth密码
在项目中,设置配置文件
#mysql数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/redisdemoserverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
#返回json的全局时间格式
spring.jackson.date-format=yyyy-MM-ddHH:mm:ss
spring.jackson.time-zone=GMT+8
#配置mapperxml文件的路径
mybatis-plus.mapper-locations=classpath:com/rh/csdn_redis_demo/mapper/xml/*.xml
#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#配置redis
spring.redis.host=你的redis地址
spring.redis.password=你的redis密码(没有直接空着,或者可以注掉这行)
spring.redis.port=6379
spring.redis.database=0
spring.redis.timeout=1800000
spring.redis.lettuce.pool.max-active=20
spring.redis.lettuce.pool.max-wait=-1
#最大阻塞等待时间(负数表示没限制)
spring.redis.lettuce.pool.max-idle=5
spring.redis.lettuce.pool.min-idle=0
在test中写一个测试方法,测试是否能够连接,返回值为pong
Jedisjedis=newJedis("你的redis安装的ip地址",6379);
//没有密码就注掉这行,不然会报错
jedis.auth("你的redis密码");//设置密码
Stringvalue=jedis.ping();
System.out.println(value);
二、Redis的基本操作
首先,要写一个redisconfig的配置类,这个类是为了解决redis存取值的序列化问题和缓存问题。
@EnableCaching
@Configuration
publicclassRedisConfigextendsCachingConfigurerSupport{
@Bean
publicRedisTemplateString,ObjectredisTemplate(RedisConnectionFactoryfactory){
RedisTemplateString,Objecttemplate=newRedisTemplate();
RedisSerializerStringredisSerializer=newStringRedisSerializer();
Jackson2JsonRedisSerializerjackson2JsonRedisSerializer=newJackson2JsonRedisSerializer(Object.class);
ObjectMapperom=newObjectMapper();
om.setVisibility(PropertyAccessor.ALL,JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
template.setConnectionFactory(factory);
//key序列化方式
template.setKeySerializer(redisSerializer);
//value序列化
template.setValueSerializer(jackson2JsonRedisSerializer);
//valuehashmap序列化
template.setHashValueSerializer(jackson2JsonRedisSerializer);
returntemplate;
@Bean
publicCacheManagercacheManager(RedisConnectionFactoryfactory){
RedisSerializerStringredisSerializer=newStringRedisSerializer();
Jackson2JsonRedisSerializerjackson2JsonRedisSerializer=newJackson2JsonRedisSerializer(Object.class);
//解决查询缓存转换异常的问题
ObjectMapperom=newObjectMapper();
om.setVisibility(PropertyAccessor.ALL,JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
//配置序列化(解决乱码的问题),过期时间600秒
RedisCacheConfigurationconfig=RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofSeconds(600))//设置数据过期时间600秒
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer))
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer))
.disableCachingNullValues();
RedisCacheManagercacheManager=RedisCacheManager.builder(factory)
.cacheDefaults(config)
.build();
returncacheManager;
定义一个controller,写一个测试方法,进行访问
@RestController
@RequestMapping("redisTest")
publicclassRedisTestController{
@Autowired
privateRedisTemplateredisTemplate;
@GetMapping("/test01")
publicvoidtest01(){
redisTemplate.opsForValue().set("test","redis存值测试");
Stringtest=(String)redisTemplate.opsForValue().get("test");
System.out.println(test);
在reids中也可以查询key与vaule(中文没有显示是shell的编码问题)。
SpringBoot中进行redis的操作基本都是借助于ops*,各位可以根据自己需求进行其他的选用。
三、使用redis作缓存
简单的用redis做一个缓存,这里使用@Cacheable在方法上作缓存。
写一个用于访问的test02方法,并在该方法上作缓存。
controller
@RestController
@RequestMapping("redisTest")
publicclassRedisTestController{
@Autowired
privateRedisTemplateredisTemplate;
@Autowired
privateUserSer
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国碳酸锂市场供需格局与价格走势预测
- 极端高温医疗抗暑药品调度
- 极端气候下传染病监测患者管理路径
- 临时保洁应急上门服务协议
- 演奏说课稿2025学年初中音乐苏少版九年级下册-苏少版
- 医学26年老年左心室肥厚查房课件
- 2026年山东省临沂市兰陵县九年级中考一模化学试卷(含答案)
- 26年营养支持随访服务适配要点
- 医学26年:Lambert-Eaton综合征 查房课件
- 医学26年:肺动脉高压MDT讨论要点 心内科查房
- 《电测工具仪表使用》课件
- 应急管理十二讲
- 2024年秋期国家开放大学《电子商务法律与法规》形考任务1-4答案
- 《吹瓶工艺培训》课件
- 移动通信机房设备安装工程施工工艺图解
- 一氧化碳中毒应急预案(6篇)
- 部编新教材小学语文五年级上册第1-4单元同步练习课堂作业课课练课时练(版含答案解析)
- 小企业考勤管理制度模板
- 12J201平屋面建筑构造图集(完整版)
- 冀少版一年级下册第2单元《火车开啦》教学设计
- 项目风险记录及跟踪表
评论
0/150
提交评论