1. 程式人生 > >spring-data-redis 使用 protobuf進行序列化和反序列

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來作為序列化和反序列化。