You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Redisson向Redis Topic发布字符串消息开头出现异常字符如何解决

问题原因

你遇到的异常前缀是Redisson默认序列化器添加的类型标识头。Redisson默认使用内置的序列化机制对发布的消息做序列化处理,会在消息体前添加用于标识对象类型、序列化规则的元数据字节,这些字节在非Redisson客户端(如redis-cli、其他语言的Redis客户端)直接消费时就会显示为乱码前缀。

解决方案

因为你发布的是纯字符串内容,只需要在获取Topic实例时指定使用StringCodec编码即可,该编码不会额外添加序列化头,直接透传字符串内容:

import org.redisson.client.codec.StringCodec;

private void publish(String channel, String message) {       
    // 初始化Topic时明确指定StringCodec
    RTopic topic = redissonClient.getTopic(channel, StringCodec.INSTANCE);
    topic.publish("{\"event\":\"notification\"}");
}
注意事项
  • 如果你的消费端也是通过Redisson实现的,无需做上述修改,Redisson消费时会自动解析掉序列化头,不会感知到前缀存在。
  • 不要直接修改Redisson全局默认Codec为StringCodec,否则会影响Redisson中其他数据结构(如RMap、RList等)的序列化/反序列化逻辑。

内容的提问来源于stack exchange,提问作者Yonoss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 05:54:04