Spring Redis发布:onMessage消息.getBody()无法转换为正确的字符串

kokeuurv  于 2022-12-11  发布在  Redis
关注(0)|答案(1)|浏览(203)

我正在尝试实现RedisSubscriber,它实现MessageListener

@Override
public void onMessage(Message message, byte[] pattern) {

    messageList.add(message.getBody().toString());

    System.out.println("Message received: " + new String(message.getBody(), StandardCharsets.UTF_8));

}

但在我的控制台中,它没有打印正确的字符串,而是打印:
收到的消息:* t Hi测试
为什么打印额外字符?
我也尝试反序列化它,但它不能正确转换

8aqjt8rx

8aqjt8rx1#

只要在RedisConfig中添加字符串序列化器就可以了

@Bean
open fun redisTemplate(): RedisTemplate<String, Any> {
    val template = RedisTemplate<String, Any>()
    template.setConnectionFactory(jedisConnectionFactory())
    template.setDefaultSerializer(StringRedisSerializer())
    return template
}

相关问题