如何处理Aerospike中不支持的数据类型

时间:2015-06-24 07:10:43

标签: aerospike

众所周知,Aerospike服务器不支持某些数据类型,如Float。但它们是在客户端处理的。例如,版本1.0.40的Python客户端支持使用序列化的不支持的数据类型。

我想知道客户端在从服务器检索数据时是如何处理的。我的意思是客户端如何知道bin应该被反序列化并呈现给用户。

如果我使用的客户端语言不支持此功能,这将帮助我从客户端外部处理。

感谢。

2 个答案:

答案 0 :(得分:6)

除标准数据类型之外的任何内容都将存储为python blob(内部数据类型)。 Python的序列化机制用于生成字节。 Aerospike客户发送它发送python blob的事实。 Aerospike服务器还存储此事实,并在读取bin时返回信息。这是由客户端解释的,如果它是python blob类型,它通过python的反序列化器运行字节。这将重建python对象。类似的事情也在Java中完成,并使用java的serializer / deserializer存储为java blob。

显然,这些python blob无法在java客户端中读取,反之亦然。因此,在使用非本机类型时,不要指望跨语言功能。

答案 1 :(得分:1)

set_serializer方法正上方的部分中详细解释了Python客户端中的序列化