java - 是否可以自定义 Spring Cache 抽象使用的序列化?

标签 java spring redis jackson spring-cache

我有一个使用 Redis 进行缓存的 Java 网络服务。最初我创建了一个直接访问 Redisson 客户端的 CacheService 以处理缓存。我最近重构了缓存处理以使用 Spring Cache 抽象,这使代码更清晰并鼓励模块化设计。不幸的是,Spring 使用 Jackson 来序列化/反序列化缓存对象,由于类型信息存储在 JSON 中,导致缓存值比以前大得多。这导致从缓存读取的响应时间增加到 Not Acceptable 程度。有什么办法可以自定义Spring序列化和反序列化缓存内容的方式吗?我想用我自己的逻辑替换它,但在文档中看不到任何内容。如果可能的话,我宁愿不必推出自己的 AspectJ 缓存实现。

最佳答案

RedisCacheManager需要一个 RedisOperations 并且您可以在那里配置序列化的工作方式。您可以调整键和值的序列化,但我怀疑键应该使用 StringRedisSerializer

关于java - 是否可以自定义 Spring Cache 抽象使用的序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37753927/

相关文章:

java - 如何在插入时使用typeHandler在mybatis中映射枚举类型

java - 使用和不使用 GZip 和 Jar 文件(内存中的 GZip?)访问给定文本文件行的最快方法

java - 如何在 Spring MVC 中将 validator 与 Controller 解耦

Spring Cloud Stream Kafka Streams Binder KafkaException : Could not start stream: 'listener' cannot be null

node.js - 在 Jest 中模拟 Redis - NestJS

python - 如何用aioredis pub/sub实现单生产者多消费者

java - 数组排序有效

java - try catch 内的 for 循环返回而不执行下一行

Spring Webflux Async PostgreSQL Publisher 在第一个结果后停止

PHP Redis 销毁所有服务器上的 session