Redisson:有没有办法在特定包中为 类 使用不同的编解码器而不是全局配置的编解码器?

Redisson: Is there a way to use different codec for classes in specific packages instead of the globally configured one?

在我当前的项目中,Redisson 用于使用 JsonJacksonCodec 缓存许多不同的 类。这按预期工作,但我希望 类 仅在某个包中使用 MsgPack 序列化,而不是让其余序列化,因为它们已经是。

根据我的发现,这可以通过配置 RObject (https://github.com/redisson/redisson/wiki/16.-FAQ#q-can-i-use-different-encoderdecoders-for-different-tasks) 或使用 CompositeCodec 来实现,但在第一种情况下,在我看来我仍然只能提供一个编解码器来配置 redisson 和将需要多个不同配置的实例来实现我的目标,而在第二种情况下,CompositeCodec 用于将多个编解码器一个接一个地链接在一起,而不是对不同的 类 使用不同的编解码器。不幸的是,Redisson 高级使用的文档和示例都很少,所以我不确定我的结论是否正确。

有没有一种简单的方法可以做到这一点,最好的方法是什么?

每个 redisson 对象都可以提供自己的编解码器。

地图对象的代码示例:

RMap<String, String> map = redisson.getMap("myMap", new MyCodec());