问题引入

在Redis中存储数据时,有时会遇到value值被自动加上双引号的问题。这种情况通常是由于Redis配置中的序列化参数设置不当导致的。为了解决这个问题,我们需要调整Spring Data Redis中RedisTemplate来序列化和反序列化键值对时中的序列化参数,确保value值的正确存储和读取。


解决Redis存储数据中的双引号问题:序列化的实践技巧_Redis

redis 的value带有双引号,主要是RedisConfig里面出了错误

解决方案 

解决Redis存储数据中的双引号问题:序列化的实践技巧_Redis_02

解决Redis存储数据中的双引号问题:序列化的实践技巧_Redis_03

  1. 第一个代码片段使用StringRedisSerializer来序列化key和value。这个序列化器会把Java字符串直接转换为Redis存储的字节序列,而不添加任何额外的格式化或引号。
  2. 第二个代码片段对key使用StringRedisSerializer,但对value使用Jackson2JsonRedisSerializer,Jackson2JsonRedisSerializer是一个基于Jackson库的序列化器,它会把Java对象序列化为JSON格式的字符串。如果你序列化的是Java字符串,那么它就会被JSON格式化,并在最终存储在Redis中时带有双引号。

解决Redis存储数据中的双引号问题:序列化的实践技巧_数据库_04