https://www.aerospike.com/docs/tools/aql/settings.html
文档说 -
使用aql设置的设置值仅对当前设置有效 会话。新的aql调用将具有默认值。
因此,遵循aql将仅持续一个会话 -
SET KEY_SEND TRUE
但是,如何进行持续改变?
基本上,我们希望确保在通过应用程序完成提取时返回PK。
答案 0 :(得分:2)
aql是一个命令行工具,不打算构建应用程序。
有很多高性能的Aerospike客户端(python,Java,C等)。
请参阅:
https://www.aerospike.com/download/client/
使用Java客户端示例发送密钥:
对于python客户端,这里有一些关于key_send策略的信息:
https://www.aerospike.com/apidocs/python/aerospike.html#aerospike.POLICY_KEY_SEND
也就是说,您可以在进行命令调用时设置KEY_SEND或TIMEOUT,并将选项作为分号分隔列表传递。
aql -c "set key_send true;INSERT INTO test.demo (PK, foo, bar) VALUES ('key1', 123, 'abc');select * from test"
set key_send true
KEY_SEND = true
INSERT INTO test.demo (PK, foo, bar) VALUES ('key1', 123, 'abc')
OK, 1 record affected.
select * from test
+--------+-----+-------+
| PK | foo | bar |
+--------+-----+-------+
| "key1" | 123 | "abc" |
+--------+-----+-------+
1 row in set (0.380 secs)
这也可以使用aql -f选项并传递带有选项和命令的文件