如何将Protobuffer对象存储在Redis缓存中?

8

我正在使用Jedis作为连接Redis服务器的Java客户端。我还在使用协议缓冲区将数据写入jedis或redis缓存。但我没有找到将protobuf对象写入redis的方法。我是否错过了什么,或者Jedis不提供将protobuf对象作为值存储的方式?


通过使用BinaryClient序列化并存储字节。 - engineerC
你需要将protobuf数据转换为字节数组,并使用二进制接口进行存储。Jedis支持字符串和字节数组类型。其他的客户端允许使用Codecs,这样你可以更好地控制Redis表示和数据映射。 - mp911de
1个回答

14

这是一个晚回答...

你可以将 Protobuf 消息序列化为二进制字符串,并使用 SET 命令将其保存到 Redis 中。然而,每当你需要获取 Protobuf 消息时,你都必须重新获取二进制字符串并对其进行反序列化,即使你只想获取单个字段。

另一种解决方案是使用 redis-protobuf 模块将 Protobuf 消息保存到 Redis 中。通过使用该模块,你可以读取或写入 Protobuf 消息。如果你只需要单个字段,你不需要获取整个消息,redis-protobuf 会返回该字段。

声明:我是 redis-protobuf 的作者。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接