关于Spring中 RedisSerializer

Scroll Down

首先看下RedisSerializer接口

// 序列化 返回字节
byte[] serialize(T t) throws SerializationException;

// 反序列化 返回对象
T deserialize(byte[] bytes) throws SerializationException;
  1. JdkSerializationRedisSerializer 默认序列化器,使用JDK提供的序列化功能,要求序列化的类实现 Serializable 接口,底层使用ObjectOutputStream 获取byte数组。对中文不友好,Redis中会出现乱码 (二进制)、序列化后占用空间大

  2. StringRedisSerializer String对象序列化器,不支持对象序列化,如果是对象必须转成String,不支持Cacheable注解(Cacheable注解方法一般返回对象,除非你返回String,不然会抛出 ClassCastException)

  3. OxmSerializer Oxm序列化器,序列化成xml格式,实际还是String类型,解析起来比较复杂,效率低

  4. JacksonJsonRedisSerializer 过期的JacksonJson序列化器

  5. Jackson2JsonRedisSerializer 使用Jackson库的序列化器,将对象转换JSON字符串。优点是速度快,占用空间小

  6. GenericJackson2JsonRedisSerializer 同上

  7. GenericToStringSerializer String序列化器,会自动将对象转成String,默认编码utf-8