1. 程式人生 > >Redis物件讀寫序列化

Redis物件讀寫序列化



在使用Redis中,將物件序列化以Json方式寫入Redis的方法:

基本推薦使用JdkSerializationRedisSerializer和StringRedisSerializer,因為其他兩個序列化策略使用起來配置很麻煩,如果實在有需要序列化成Json和XML格式,可以使用java程式碼將String轉化成相應的Json和XML。

1:使用Spring-data-Redis提供的介面JacksonJsonRedisSerializer

jackson-json工具提供了javabean與json之間的轉換能力,可以將pojo例項序列化成json格式儲存在redis中,也可以將json格式的資料轉換成pojo例項。因為jackson工具在序列化和反序列化時,需要明確指定Class型別,因此此策略封裝起來稍微複雜。需要jackson-mapper-asl工具支援

使用jackson提供的庫,將物件序列化為JSON字串。優點是速度快,序列化後的字串短小精悍。但缺點也非常致命,那就是此類的建構函式中有一個型別引數,必須提供要序列化物件的型別資訊,通過檢視原始碼,發現其只在反序列化過程中用到了型別資訊。

2:使用Spring-data-Redis提供的介面JdkSerializationRedisSerializer

資料格式必須為json或者xml,那麼在程式設計級別,在redisTemplate配置中仍然使用StringRedisSerializer,在儲存之前或者讀取之後,使用“SerializationUtils”工具轉換轉換成json或者xml。

使用JDK提供的序列化功能。 優點是反序列化時不需要提供型別資訊(class),但缺點是序列化後的結果非常龐大,是JSON格式的5倍左右,這樣就會消耗redis伺服器的大量記憶體.