在 Aerospike 中显示密钥?
SHOW KEYS in Aerospike?
我是 Aerospike 的新手,可能遗漏了一些基本知识,但我试图在 Set
中查看 Keys
的枚举(我有意避免 "list" 因为它是一种数据类型)。
例如,
- 要查看所有
Namespaces
,文档说要使用 SHOW NAMESPACES
- 要查看所有
Sets
,我们可以使用 SHOW SETS
如果我想在 Set
中查看所有唯一 Keys
...我可以使用什么命令?
似乎可以使用 client.scan()
... 但这似乎是一种获得 的超级繁重的方式 密钥(因为它获取所有 bin 数据以及)。
如有任何建议,我们将不胜感激!截至目前,我正在考虑向(从)元记录中插入(删除)。
您可以通过将 ScanPolicy 中的 includeBinData 设置为 false 来选择不恢复数据。
感谢@pgupta 为我指明了正确的方向。
这实际上有两部分:
- 为了从服务器检索原始密钥,必须在
put()
调用期间设置策略以保存密钥值 server-side(否则,似乎只有 digest/hash 被存储?)。
这是 Python 中的示例:
aerospike_client.put(key, {'bin': 'value'}, policy={'key': aerospike.POLICY_KEY_SEND})
- 然后(修改了 Aerospike 的 own documentation),您执行扫描并将策略设置为不 return bin 数据。从这里,您可以提取密钥:
示例:
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])
迭代结果的需要对我来说仍然有点笨拙;我仍然认为使用 'master-key' 记录来存储所有 other 键的列表会更高效,在我的例子中——这样,我可以简单地做一个get()
调用 Aerospike 服务器以检索列表。
我是 Aerospike 的新手,可能遗漏了一些基本知识,但我试图在 Set
中查看 Keys
的枚举(我有意避免 "list" 因为它是一种数据类型)。
例如,
- 要查看所有
Namespaces
,文档说要使用SHOW NAMESPACES
- 要查看所有
Sets
,我们可以使用SHOW SETS
如果我想在 Set
中查看所有唯一 Keys
...我可以使用什么命令?
似乎可以使用 client.scan()
... 但这似乎是一种获得 的超级繁重的方式 密钥(因为它获取所有 bin 数据以及)。
如有任何建议,我们将不胜感激!截至目前,我正在考虑向(从)元记录中插入(删除)。
您可以通过将 ScanPolicy 中的 includeBinData 设置为 false 来选择不恢复数据。
感谢@pgupta 为我指明了正确的方向。
这实际上有两部分:
- 为了从服务器检索原始密钥,必须在
put()
调用期间设置策略以保存密钥值 server-side(否则,似乎只有 digest/hash 被存储?)。
这是 Python 中的示例:
aerospike_client.put(key, {'bin': 'value'}, policy={'key': aerospike.POLICY_KEY_SEND})
- 然后(修改了 Aerospike 的 own documentation),您执行扫描并将策略设置为不 return bin 数据。从这里,您可以提取密钥:
示例:
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])
迭代结果的需要对我来说仍然有点笨拙;我仍然认为使用 'master-key' 记录来存储所有 other 键的列表会更高效,在我的例子中——这样,我可以简单地做一个get()
调用 Aerospike 服务器以检索列表。