详解SpringBoot如何使用Redis和Redis缓存_第1页
详解SpringBoot如何使用Redis和Redis缓存_第2页
详解SpringBoot如何使用Redis和Redis缓存_第3页
详解SpringBoot如何使用Redis和Redis缓存_第4页
详解SpringBoot如何使用Redis和Redis缓存_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第详解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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论