当前位置: 首页 > 知识库问答 >
问题:

使用Redis支持的Spring Boot缓存缓存不可序列化的对象

阎丰
2023-03-14

我想缓存来自第三方API的响应,该API提供自己的客户端和数据类。但问题是,这两个数据类都没有实现Serialazable接口,因此使用Spring Boot Cache Redis进行缓存时,在我尝试时抛出NotSerializableException

是否可以通过某种方式将Spring Boot Redis缓存配置为允许缓存未实现可序列化的对象?

共有1个答案

劳亦
2023-03-14

默认情况下,RedisCache配置为使用Java本机序列化。您可以尝试这样更改它,因此RedisCache将使用JSON序列化,这不需要您的respse是Serializable

 类似资料:
  • 本文向大家介绍SpringBoot使用Redis缓存的实现方法,包括了SpringBoot使用Redis缓存的实现方法的使用技巧和注意事项,需要的朋友参考一下 (1)pom.xml引入jar包,如下:   (2)修改项目启动类,增加注解@EnableCaching,开启缓存功能,如下:   (3)application.properties中配置Redis连接信息,如下:   (4)新建Redis

  • 一个好的HTTP缓存策略可以极大地提高一个web应用的性能及客户端的体验。谈到HTTP缓存,它主要是与HTTP的响应头'Cache-Control'相关,其次另外的一些响应头比如'Last-Modified'和'ETag'等也会起一定的作用。 HTTP的响应头'Cache-Control'主要帮助私有缓存(比如浏览器端缓存)和公共缓存(比如代理端缓存)了解它们应该如果缓存HTTP响应,以便后用。

  • 问题内容: 我想在Redis中实现绝对缓存和滑动缓存。没有人有任何资源链接,这将是有帮助的 问题答案: Redis已经为此提供了许多命令: 到期:设置密钥超时。 期望值:与以前相同,但是需要一个绝对的Unix时间戳(自1970年1月1日以来的秒数)。 TTL:返回具有超时功能的键的剩余生存时间 您必须了解有关Redis过期的重要一件事:仅当使用SET或GETSET移除或覆盖键时,才会清除超时值。所

  • 问题内容: 我需要缓存多种类型,例如: 和: 我正在使用RedisCacheManager和RedisTemplate仅支持一个串行器。 问题答案: 经过一些研究,现在已解决。 将spring-data-redis更改为1.4.2。 使用带有缓存映射的类将RedisCacheManager扩展到序列化器(cacheName-> serializer)并缓存名称 覆盖getCache方法(Cache

  • 1. 前言 在MyBatis 缓存一节中,我们介绍了 MyBatis 的多级缓存。MyBatis 的二级缓存可在多个会话中共享缓存,但是这也加大了内存的使用空间,如果二级缓存空间占有量过多势必会导致程序运行空间的不足,因此我们需要将二级缓存转移到专业的缓存服务器上。 Redis 是一个高性能的 kv 数据库,被广泛的使用在缓存服务上,MyBatis 项目开发者提供了 Redis 缓存的实现。本小节

  • 为优化站点性能,静态资源应该带有恰当的'Cache-Control'值与其他必要的头。配置一个ResourceHttpRequestHandler处理器服务静态资源请求不仅会读取文件的元数据并填充'Last-Modified'头的值,正确配置时'Cache-Control'头也会被填充。【这段翻得还不是很清晰】 你可以设置ResourceHttpRequestHandler上的cachePerio