springboot 2.2.5 redisTemplate 问题

问题版本:spring-boot-starter-parent 2.2.5.RELEASE。

 redisTemplate.opsForValue().set("test","1234",10000);
 redisTemplate.opsForValue().get("test")

数据保存结果为:

以下执行正常

 redisTemplate.opsForValue().set("test","1234");
 redisTemplate.opsForValue().get("test")
 redisTemplate.opsForValue().set("test","1234",10000, TimeUnit.SECONDS);
 redisTemplate.opsForValue().get("test")

各位知道解决方案么

Redis存储的数据都是二进制的。就算你存储字符串,也是按照二进制存储的。你看到的这堆 \x00\ 。是吧二进制以16进制的形式展示给你看的。

image

如果你的value是字符串可以选择预览方式,为 Plain Text

不是预览的问题。

你使用Object作为Value类型。框架默认用Jdk的序列化机制把字符串对象序列化为字节。会多出许多额外的数据。
你尝试用StringRedisTemplate,它是直接序列化字符串为字节的。

也不行

你第三个参数是offset,偏移量。(不是超时时间)
表示从n个字节后覆写。
你百度一下这个参数。

1赞

谢谢,确认是这个问题,没仔细看方法参数说明

1赞

发帖尽量贴代码。别人好复制下来测试。

好的