如何在Aerospike中设置具有持久性的环境变量KEY_SEND?

时间:2018-02-28 15:39:35

标签: aerospike

https://www.aerospike.com/docs/tools/aql/settings.html

文档说 -

  

使用aql设置的设置值仅对当前设置有效   会话。新的aql调用将具有默认值。

因此,遵循aql将仅持续一个会话 -

SET KEY_SEND TRUE

但是,如何进行持续改变?

基本上,我们希望确保在通过应用程序完成提取时返回PK。

1 个答案:

答案 0 :(得分:2)

aql是一个命令行工具,不打算构建应用程序。

有很多高性能的Aerospike客户端(python,Java,C等)。

请参阅:

https://www.aerospike.com/download/client/

使用Java客户端示例发送密钥:

https://github.com/aerospike/aerospike-client-java/blob/master/examples/src/com/aerospike/examples/StoreKey.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选项并传递带有选项和命令的文件