Spring Data Redis入门示例:数据序列化

概述

RedisTemplate默认使用的是基于JDK的序列化器,所以存储在Redis的数据如果不经过相应的反序列化,看到的结果是这个样子的:

Spring Data Redis入门示例:数据序列化_第1张图片
乱码啦

可以看到,出现了乱码,在程序层面上,不会影响程序的运行,但当出现数据错误,对数据进行排查时,就无从下手了。

序列化器

在Spring Data Redis中,用户自定义类型和存储数据之间的转换(反之亦然)由org.springframework.data.redis.serializer包下的类进行处理。
这个包包含两种类型的序列化程序,它们负责序列化过程:

  • 基于RedisSerializer的双向序列化器
  • 通过RedisElementReaderRedisElementWriter进行元素的读写(2.0引进的)
    这两种类型的序列化器主要区别在于,RedisSerializer主要序列化为byte[],RedisElementReader/RedisElementWriter使用ByteBuffer
    基于RedisSerializer的序列化器有多种实现,可以直接使用,如:
  • StringRedisSerializer
  • JdkSerializationRedisSerializer(默认)
  • OxmSerializer(依赖于Spring OXM)
  • Jackson2JsonRedisSerializer/GenericJackson2JsonRedisSerializer(依赖于jackson)

序列化的范围

序列化可以应用到 KeyValueHashKeyHashValue上,在 RedisTemplate中,有四个属于与之对应:
keySerializervalueSerializerhashKeySerializerhashValueSerializer

基于Json的序列化

引入Jackson的maven依赖:

2.8.5


    com.fasterxml.jackson.core
    jackson-databind
    ${jackson.databind.version}

配置序列化器:







重新配置RedisTemplate:


    
    
    
    
    

重新运行上一节的示例,得到如下结果:

序列化后的结果

示例说明

1. 查看redis的管理工具是:RedisDesktopManager,下载地址:https://redisdesktop.com/download

你可能感兴趣的:(Spring Data Redis入门示例:数据序列化)