如何用Golang解码PHP序列化Redis响应

如何用Golang解码PHP序列化Redis响应,php,serialization,go,redis,Php,Serialization,Go,Redis,我的Redis db有一个问题,它是用PHP序列化协议编码的,但我不知道如何使用Golang解码这些数据,是否有类似于JSON Unmarshall/Marshall的东西?要在Go程序中读取这些数据,您必须在Go中重新实现非序列化的PHP函数。不过,我怀疑这是一项容易的任务 更好的解决方案是使用可移植格式在Redis中存储数据,如JSON或Google Protobuf。我发现了这个问题,我不知道您是否已经在使用它。如果您想在多种语言之间进行序列化/反序列化,请使用JSON。这是正确的。格式也

我的Redis db有一个问题,它是用PHP序列化协议编码的,但我不知道如何使用Golang解码这些数据,是否有类似于JSON Unmarshall/Marshall的东西?

要在Go程序中读取这些数据,您必须在Go中重新实现
非序列化的
PHP函数。不过,我怀疑这是一项容易的任务


更好的解决方案是使用可移植格式在Redis中存储数据,如JSON或Google Protobuf。

我发现了这个问题,我不知道您是否已经在使用它。

如果您想在多种语言之间进行序列化/反序列化,请使用JSON。这是正确的。格式也取决于PHP版本。对于标量PHP类型,解码非常简单。但是,对于对象,您需要有关其类的信息。请参阅示例。另一种选择是,如果数据主要由k/v映射组成,则将其存储在Redis哈希中。我知道。。我很想使用json,但所有的redis db都是这样编码的,将所有服务迁移到json格式非常复杂。我选择迁移redis db json格式,感谢您的帮助,祝您愉快。还有一个问题:这一个非常好,但我无法将结果转换为json