Aerospike查询语言获取列表大小和计数

时间:2017-10-11 08:18:03

标签: aerospike

我正在使用空气动力学列表功能(http://www.aerospike.com/docs/guide/cdt-list.html)并可以执行选择查询以查看列表:

  

从ns.set中选择bin,其中PK =' pk'

但有没有办法可以获得列表中的元素数量? 而且还有一种方法可以看到记录的当前大小(因为最大记录大小有限制)

1 个答案:

答案 0 :(得分:3)

AQL是一种主要用于管理索引,UDF,运行ad-hoc UDF(维护,汇总等)以及在较小程度上浏览数据的工具。如果要使用完整的List或Map操作集,则应使用语言客户端,例如JavaPythonGo等。

List API包含列表的size()。例如,在Python客户端中,您有aerospike.Client.list_size。由于列表在服务器端以msgpack序列化格式存储,因此您很难判断msgpacked list是否大于max-write-block,假设您的数据在SSD上(如果它在内存中没有持久性,则您没有相同的记录大小限制)。

您可以估算大小,但是要遵循EAFP原则,编写记录会更简单,而不必提前考虑大小,并抓住error code 13'记录过大的异常& #39; (例如,aerospike.exception.RecordTooBig)。然后,您可以决定如何溢出到单独的记录中(keykey-2 .. key-N)。