在Aerospike中显示钥匙



我是Aerospike的新手,可能缺少一些基本的东西,但是我试图在Set中看到Keys的枚举(我故意避免了"列表"一词因为它是数据类型(。

例如,

  • 要查看所有Namespaces,文档说要使用SHOW NAMESPACES
  • 要查看所有Sets,我们可以使用SHOW SETS

如果我想在Set中查看所有唯一的Keys ...我可以使用什么命令?

似乎可以使用 client.scan() ...但是这似乎是一种超重的方法来获得 (因为它也获取了所有bin数据(。

任何建议都将不胜感激!截至目前,我正在考虑将(删除(插入(来自(元记录中。

谢谢你@pgupta指向我的方向正确。

这实际上有两个部分:

  1. 为了从服务器检索原始键,必须 - 在put()调用期间 - 设置策略以保存键值服务器端(否则,似乎只存储了一个摘要/哈希?(。

这是Python中的一个例子:

aerospike_client.put(key, {'bin': 'value'}, policy={'key': aerospike.POLICY_KEY_SEND})
  1. 然后(修改了Aerospike自己的文档(,您执行扫描并设置策略以不返回垃圾箱数据。从中,您可以提取键:

示例:

keys = []
scan = client.scan('namespace', 'set')
scan_opts = { 'concurrent': True, 'nobins': True, 'priority': aerospike.SCAN_PRIORITY_MEDIUM }
for x in (scan.results(policy=scan_opts)): keys.append(x[0][2])

需要迭代结果对我来说仍然有些笨拙。我仍然认为,使用"主键"记录存储所有其他密钥的列表将更具性能,在我的情况下 - 我可以简单地将一个get()调用到检索列表的Aerospike服务器。

您可以选择不要通过设置scanpolicy中的bindata将数据带回false。

最新更新