Spring Cache Redis 修改序列化方式
Posted 盲目的拾荒者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Cache Redis 修改序列化方式相关的知识,希望对你有一定的参考价值。
从框架的角度来看,存储在Redis中的数据只是字节数。虽然Redis本身支持各种类型,但大多数情况下这些都是指数据存储的方式而不是数据的存储方式代表。由用户决定信息是否被翻译成字符串或任何其他对象。用户(自定义)类型和原始数据之间的转换(反之亦然)在Spring Data Redis中通过RedisSerializer接口(包org.springframework.data.redis.serializer)处理,顾名思义,它负责处理序列化过程。开箱即用的多个实现,其中两个在本文档中已经提到过:StringRedisSerializer和JdkSerializationRedisSerializer。但是,可以通过Spring 3 OXM支持使用OxmSerializer进行对象/ XML映射,或者使用JacksonJsonRedisSerializer,Jackson2JsonRedisSerializer或GenericJackson2JsonRedisSerializer来以JSON格式存储数据。请注意,存储格式不仅限于值 - 它可以用于键,值或哈希,没有任何限制。
默认情况下,RedisCache和RedisTemplate配置为使用Java本机序列化。 众所周知,Java本机序列化允许由利用易受攻击的库和类注入未经验证的字节码的有效负载引起的远程代码执行。 在反序列化步骤中,操作输入可能导致应用程序中不需要的代码执行。 因此,请勿在不受信任的环境中使用序列化。 通常,我们强烈建议使用任何其他消息格式(例如JSON)。
[https://docs.spring.io/spring-data/redis/docs/1.8.20.RELEASE/reference/html/#redis:serializer]
Spring-data-redis支持的序列化方式:
org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration
顺便附上自定义key生产:
微信公众号
JAVA程序猿成长之路
分享资源,记录程序猿成长点滴。专注于Java,Spring,SpringBoot,SpringCloud,分布式,微服务。
以上是关于Spring Cache Redis 修改序列化方式的主要内容,如果未能解决你的问题,请参考以下文章
使用Spring Cache + Redis + Jackson Serializer缓存数据库查询结果中序列化问题的解决
Spring boot 拾遗 —— Spring Cache 使用 Jackson 与 自定义 TTL
Spring Boot 整合 Spring Cache + Redis