spring-data-redis 使用 protobuf进行序列化和反序列

这是spring配置,protostuff有一个特点就是你反序列化的时候需要指定反序列化的类型Class,而如果按常规spring-data-redis规范,只能实现RedisSerializer接口,其中反序列化接口T deserialize(byte[] bytes) throws SerializationException;无法指定Class,所以换个思路,我们在调用redisTemplate操作的时候不是直接放对象而是直接放序列化后的byte[],而反序列化的时候获取byte[]再通过protostuff转为对应的class。注意一点是enableDefaultSerializer这个属性要置为false,并且不要配置valueSerializer因为如果不设置该属性RedisTemplate初始化的时候会指定默认的序列化也就是JdkSerializationRedisSerializer来作为序列化和反序列化。



### Spring Boot Redis 序列化依赖 为了在Spring Boot项目中处理Redis序列化,通常需要引入`spring-boot-starter-data-redis`作为基础依赖。此依赖包含了操作Redis所需的核心库以及自动配置支持[^1]。 除了基本的数据访问外,在涉及序列化的场景下,可能还需要额外指定特定的序列化器来满足应用需求。例如: ```xml <dependencies> <!-- 数据访问 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- JSON序列化工具包 Jackson --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <!-- 如果使用JSON序列化可以考虑加入以下依赖用于更复杂的对象映射 --> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-parameter-names</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> </dependency> </dependencies> ``` 上述代码片段展示了如何通过Maven POM文件添加必要的依赖项以启用基于Jackson的JSON序列化功能[^2]。需要注意的是,并不是所有的序列化场景都需要这些附加组件;具体取决于应用程序的实际需求而定。 对于某些特殊类型的序列化(比如Protobuf),则需根据具体的协议缓冲区版本选择相应的客户端库并将其纳入构建脚本之中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值