You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Aerospike中持久化设置环境变量KEY_SEND?

持久化设置以让查询返回主键(PKs)

如果想让AQL工具每次启动都自动返回主键,或者让应用程序执行查询时稳定获取PKs,这里有几种可靠的解决方案:

针对AQL工具的持久化配置

1. 使用AQL配置文件

AQL支持通过本地配置文件加载默认设置,操作步骤如下:

  • 创建或编辑AQL的配置文件,默认路径为 ~/.aerospike/aql.conf(若不存在则直接新建)
  • 在文件中添加以下配置项:
    output-pks true
    
    保存后,每次启动AQL时该设置会自动生效,无需手动执行set output pks true命令。

2. 启动AQL时携带命令行参数

如果不想修改配置文件,也可以在启动AQL时直接指定参数:

aql --output-pks true

这种方式每次启动AQL都会开启返回PKs的功能,适合需要重复使用但不想修改配置的场景。

针对应用程序查询的持久化配置

如果你的需求是应用程序(而非AQL工具)执行查询时返回PKs,需要在对应语言的客户端SDK查询策略中配置,以下是几个常见SDK的示例:

  • Python SDK:
    创建查询策略时开启主键返回:
    import aerospike
    
    config = {"hosts": [("127.0.0.1", 3000)]}
    client = aerospike.client(config).connect()
    
    # 配置查询策略,开启PK返回
    policy = aerospike.Policy(pkey=True)
    # 执行查询时传入该策略
    query = client.query("namespace", "set")
    records = query.results(policy=policy)
    
  • Java SDK:
    设置QueryPolicy的sendKey属性:
    AerospikeClient client = new AerospikeClient("127.0.0.1", 3000);
    QueryPolicy policy = new QueryPolicy();
    policy.sendKey = true; // 开启主键返回
    Statement stmt = new Statement();
    stmt.setNamespace("namespace");
    stmt.setSetName("set");
    RecordSet rs = client.query(policy, stmt);
    

这种方式是在应用程序代码层面配置,只要代码不变,每次查询都会返回PKs,完全不受AQL会话设置的影响。

注意:AQL的会话级设置仅对当前AQL窗口有效,重启后会恢复默认值,因此上述AQL方案是解决工具层面的持久化;而应用程序的查询需要单独在客户端SDK中配置,这才是应用级的持久化方案。

内容的提问来源于stack exchange,提问作者Sandeepan Nath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:43:48