首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Spring Boot2 CacheManager在Redis中存储非类型化JSON

使用Spring Boot2 CacheManager在Redis中存储非类型化JSON可以通过以下步骤实现:

  1. 引入相关依赖: 首先,在Spring Boot的pom.xml文件中,引入Redis和Spring Cache的依赖。例如:
代码语言:txt
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>
  1. 配置Redis连接: 在application.properties或application.yml中添加Redis连接配置。例如:
代码语言:txt
复制
spring.redis.host=127.0.0.1
spring.redis.port=6379
  1. 创建缓存配置类: 创建一个缓存配置类,用于配置CacheManager。可以在该类上使用@EnableCaching注解开启缓存功能,并使用@Configuration注解将其作为配置类。
代码语言:txt
复制
@Configuration
@EnableCaching
public class CacheConfig {
    
    @Bean
    public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
        RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(RedisSerializer.json()));
        
        return RedisCacheManager.builder(redisConnectionFactory)
                .cacheDefaults(cacheConfiguration)
                .build();
    }
}
  1. 使用缓存注解: 在需要进行缓存的方法上添加缓存注解,例如@Cacheable@CachePut等。同时,可以通过设置key属性来指定缓存的键名。例如:
代码语言:txt
复制
@Service
public class ExampleService {
    
    @Cacheable(value = "exampleCache", key = "#id")
    public ExampleEntity getExampleEntityById(Long id) {
        // 从数据库或其他数据源获取数据
        return exampleEntity;
    }
}

以上步骤完成后,Spring Boot就会使用Redis作为缓存存储非类型化JSON数据。每次调用被缓存的方法时,会先检查Redis中是否存在对应的缓存数据,如果存在则直接返回缓存数据,否则执行方法体,并将方法返回值缓存到Redis中。

此外,Spring Boot提供了丰富的注解和配置选项,用于进一步定制和优化缓存功能。更多详情可参考Spring Boot官方文档: https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-caching

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

2 Springboot中使用redis,配置redis的key value生成策略

上一篇里讲过了redisspring boot的简单使用,对于单个对象的增删改查的默认操作。...下面来看一下redis,这些缓存的数据是如何存储的,为了便于后面的缓存的key的可读性,先修改一下cache的key。...,但是如果方法上有Long等String类型的话,会报类型转换错误 //所以没有自己定义key生成策略的时候,以下这个代码建议不要这么写,可以不配置或者自己实现ObjectRedisSerializer...当然也可以自己定义序列方式,使用别的Json工具类,或者别的什么方法来完成序列方式。 完成RedisTemplate的设置后,再次save一个Post对象来看看在redis里的存储方式。 ?...在上一篇里,还提到了无需配置ymlredis的属性,ip、port之类的,系统会识别默认的。下面来看看如何使用自己的redis配置。

3.9K20

Spring 全家桶之 Spring Boot 2.6.4( Ⅰ )- Caching(Part C)

接口 再次测试 查看Redis存储的数据 默认保存对象,使用jdk序列机制,序列的数据保存到redis,如果想要保存json格式的数据就需要自定义RedisTemplate,使用指定的序列规则...存储的对象:" + teslaAtRedis); } 再次查看redis中保存的数据的格式已经变为json格式 三、Redis整合CacheManager 引入redis的starter后,application.yml...,重启项目,再次查询相同的数据 仍然不会执行SQL语句,数据已经缓存在redis,不会像存储CurrentMap中会随着项目重启清空缓存数据 查看Redis中保存的数据 这里存储的格式是按照默认的...jdk序列保存的,如果想要保存json格式的数据需要自定义CacheManager,指定序列规则 自定义一个cacheManager 使用RedisCacheManagerBuilder的builder...缓存,重启应用,再次查询 /tesla/1166057546 查看redis存储的数据格式 已经变为JSON格式,但是这里的key相比使用ConcurrentMap存储结果时,key默认是目标方法传递的参数

28250
  • SpringRedis配置与使用

    Redis是一种特殊类型的数据库,他被称之为key-value存储 本文覆盖缓存和存储两方面进行说明,使用的是Spring 4.0和Java配置方式 存储 Redis的配置 package springmvc.rootconfig...Redis提供的序列器 GenericToStringSerializer:使用Spring转换服务进行序列 JacksonJsonRedisSerializer:使用Jackson1,将对象序列化为...JSON Jackson2JsonRedisSerializer:使用Jackson2,将对象序列化为JSON JdkSerializationRedisSerializer:使用Java序列 OxmSerializer...:使用Spring O/X映射的编排器和解排器实现序列,用于XML序列 StringRedisSerializer:序列String类型的key和value redisTemplate.setKeySerializer...表明Spring调用方法之前,首先应该在缓存查找方法的返回值,如果这个值能够找到,就会返回缓存的值。

    1.9K10

    一文搞定 Spring Data Redis 详解及实战

    Spring Boot实战Redis章节配置完成后,使用Spring直接注入即可。...从Spring Data Redis框架本身的角度看,存放到redis的数据只是字节,虽然Redis本身支持各种类型,但大部分是指数据存储的方式,而不是它所代表的内容,由用户决定是否将字节转换为字符串或其他对象...用户自定义类型和原始数据之间的转换由org.springframework.data.redis.serializer包的序列器进行处理。...序列,无需定义JavaType 所以,如果只是简单的字符串类型使用StringRedisSerializer就可以了,如果要有对象就使用Json的序列吧,可以很方便的组装成对象。...Spring Data Redis提供了SessionCallback接口,同一个连接需要执行多个操作时使用,与使用Redis事务时一样。

    1.3K50

    Springboot 2.0 ——集成redis

    StringRedisTemplet,默认都是存储字符串的形式;RedisTemplet,值可以是某个对象,而redis默认把对象序列存储redis(所以存放的对象默认情况下需要序列...) 如果需要更改数据的存储方式,如采用json存储redis,而不是以序列后的形式。...1)自己创建一个RedisTemplate实例,该实例自己定义json的序列格式(org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer...作为缓冲组件,RedisCache通过操纵redis缓冲数据 ---- 修改redis缓冲的序列机制 SpringBoot,如果要修改序列机制,可以直接建立一个配置类,配置类自定义CacheManager...,CacheManager可以自定义序列的规则,默认的序列规则是采用jdk的序列 注:SpringBoot 1.5.6 和SpringBoot 2.0.5 的版本自定义CacheManager

    75020

    spring boot 集成redis版本说明

    Spring cache的注解如何使用 spring cache与redis集成之后,我们就可以使用spring cache自带的注解功能 缓存的主要使用方式包括以下两方面 缓存的声明,需要根据项目需求来妥善的应用缓存...序列方式以及相互之间的比较 当我们的数据存储Redis的时候,我们的键(key)和值(value)都是通过Spring提供的Serializer序列到数据库的。...通过查看源代码,发现其只反序列过程中用到了类型信息,时间消耗比JDK长。 * JdkSerializationRedisSerializer: 使用JDK提供的序列功能。...通过查看源代码,发现其只反序列过程中用到了类型信息,时间消耗比JDK长。...对象可能不能满足需要 // 因此建议依赖业务和技术上的需求,自行做一些扩展和定制 // 这样就可以使用Spring4的@Cacheable、@CachePut、@CacheEvict

    1.3K40

    微服务架构Day09-SpringBoot之缓存

    CacheManager所拥有 Entry:是一个存储Cache的key-value键值对 Expiry:每一个存储Cache的条目有一个定义的有效期,一旦超过这个时间,条目为过期状态.一旦过期...缓存中间件 Redis Redis: Redis是一个开源的内存的数据结构存储系统,可以用作数据库,缓存和消息中间件 操作工具:Redis Desktop Manager Redis配置 下载Redis-Windows... 配置redis,application.properties配置redis spring.redis.host=192.168.32.242...JDK的序列机制,将序列后的数据保存到redis 为了增强Redis数据库的数据可读性: 将对象数据以json方式保存: 将对象转化为json 配置redisTemplate的json序列规则...可以方法中使用缓存管理器获取缓存,调用操作API对缓存的数据进行操作

    33610

    Spring Boot2 系列教程(四十二)使用 Jib 部署 Spring Boot

    因此松哥今天想再和大家聊一聊另外一种方案 Jib,这是谷歌开源的一个容器运行方案,使用它我们将 Spring Boot 进行容器部署只要两步: 第一步配置 Maven Plugin 第二步构建 我们一起来看看...Jib 之前那篇文章,我们将 Spring Boot 项目进行容器部署,要求开发人员要有一定的 Docker 技能作为支撑,然而在实际开发,并非每个人都是 Docker 专家,或者说会用 Docker...Boot2 系列教程(七)理解自动配置的原理 8、Spring Boot2 系列教程(八)Spring Boot 配置 Https 9、Spring Boot2 系列教程(九)Spring Boot...12、Spring Boot2 系列教程(十二)@ControllerAdvice 的三种使用场景 13、Spring Boot2 系列教程(十三)Spring Boot 的全局异常处理 14、Spring...系列教程(三十四)Spring Security 添加验证码 35、Spring Boot2 系列教程(三十五)SpringSecurity 使用 JSON 格式登录 36、Spring Boot2

    2.2K11

    Spring Cache缓存框架

    一、序言 Spring Cache是Spring体系下标准缓存框架。Spring Cache有如下优势: 缓存品种多 支持缓存品种多,常见缓存Redis、EhCache、Caffeine均支持。...1、缓存管理器 缓存的存储介质不同、缓存连接不同的数据库、缓存值序列等由缓存管理器配置。缓存管理器有主次之分,默认情况下使用主(首要)缓存管理器。...(二)补充内容 一般来说缓存的Key与Value均是String类型,特别是Value通常序列化成JSON串。 三、注解版 用于基于注解的方式来管理缓存数据。...如果在全局配置文件添加如下配置,即使启动类上标注EnableCaching注解,Spring Cache缓存然后是关闭状态。...spring: cache: type: none 如果应用自定义独立于Spring容器的缓存,则不受此配置影响。

    77230

    springboot之使用redistemplate优雅地操作redis

    JacksonJsonRedisSerializer:jackson-json工具提供了javabean与json之间的转换能力,可以将pojo实例序列化成json格式存储redis,也可以将json...string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列的对象 。 string类型Redis最基本的数据类型,一个键最大能存储512MB。...注解缓存是一个对缓存使用的抽象,通过代码添加下面的一些注解,达到缓存的效果。 Set类型的操作参考 ZSet 有序集合 有序集合由唯一的,不重复的字符串元素组成。...这里使用了string作为key的对象类型,值为Object。 对于Object,spring-redis默认使用了jdk自带的序列,不推荐使用默认了。...所以使用json的序列方式 对spring-redisredis的五种数据类型也有支持 HashOperations:对hash类型的数据操作 ValueOperations:对redis字符串类型数据操作

    7.2K30
    领券