
可以看到图中 RDM Redis Console 之下,当我们获取 key 为 test 的value的值,打印出来是出现
了两个双引号 , 这是不正确的。
如果是初学者或者不是大神, 之前没有发现这个问题, 盲目的看别人的教程(搬砖),就不知道
是如何, 图一是我从某网友分享的 redis 入门代码里截图作为例子的。
原因: 可以看到红色划线部分, 在写入数据库的时候,value都需要经过序列化,当我们用 jack
(JSON工具)去把数据 JSON化的时候并传入数据库都会导致这种情况( JSON格式: { "key": "value"
} )。JSON已为数据添加双引号了,再用redis就会出现 两个双引号
图一:

如何解决呢:
spring data Redis 官网里边就有答案。
地址如下, 然后页面滑动到如 图二所示.
具体意思大家看自己翻译下。 我就简介的说:
主要意思: 该 序列化API 主要提供了 StringRedisSerializer 和 JDKSer....这两个 序列化类。
另外要想实现 json的序列化则使用: Jackson...或者 Gener...这两个序列化类,便可把数据序列化
成 JSON 数据。
看到这你就明白了: 代码里边用的 Jackson...这个类才导致的问题,那么切换成别的序列化类不就OK了。
我们看到它自己提供了 StringRedisSerializer 这个类。顾名思义: 序列化为 字符串类型。
更改下代码即可,如下:
template.setKeySerializer(new StringRedisSerializer());
直接new一个就OJBK了。
链接地址:
https://docs.spring.io/spring-data/redis/docs/2.0.3.RELEASE/reference/html/
图二:

最后,文章受限于本人技术能力,如有问题,欢迎提出,不喜欢也可以喷我.
网友评论