我没有在Python client中看到用于检查给定集合是否为空的方法。
作为命令行中的文档says,我可以使用:
asinfo -h <host> -v 'sets/<namespace>/<set>'
但这仅适用于单个主机。
另一种方法是查看以下内容的输出:
asadm -h <host> -e 'info set'
您将如何在Python中实现这种方法?
答案 0 :(得分:1)
在客户端中使用“信息” API:https://www.aerospike.com/apidocs/python/client.html#aerospike.Client.info_all
client.info_all("sets/<namespace>/<set>")
然后将您感兴趣的统计信息相加。
答案 1 :(得分:1)
这是我的python实现:
def _info_result_prop_value(info_result, prop_name, default):
result_split = info_result.split(':')
return next((s.strip().split('=', 2)[1] for s in result_split
if s.strip().startswith(f'{prop_name}=')), default)
def count_objects(client, ns, set_name):
count = 0
for info_result in client.info_all(f"sets/{ns}/{set_name}").values():
count += int(_info_result_prop_value(info_result[1], 'objects', '0'))
return count
def is_empty_set(client, ns, set_name):
return count_objects(client, ns, set_name) == 0