新的 Rust 客户端使得能够使用 Aerospike 构建安全、高性能的应用程序。

  • Aerospike 已正式发布其 Rust 客户端,以支持与其实时 NoSQL 数据库交互的高吞吐量、低延迟应用程序。
  • 决定正式采用之前由社区支持的 Rust 客户端,是因为在金融、电信、云基础设施和嵌入式系统等行业中,越来越多地使用 Rust 来构建高吞吐量、低延迟应用程序。

    • 像亚马逊、Cloudflare 和 Discord 等组织已采用 Rust 来构建可靠的基础设施,并消除通常影响基于 C/C++软件的内存相关错误类。
  • Rust 客户端采用异步优先的并发模型,允许开发人员选择Tokioasync-std作为底层实现。对于遗留或混合环境,它还包括一个子 crate,用于公开阻塞式 I/O API。
  • 除了原子操作,该客户端还支持批量命令,可在单个调用中对多个记录进行操作。客户端的版本 2添加了对读取、写入、删除和用户定义函数 (UDF) 操作的全面支持。它还允许使用主索引和辅助索引查询记录,并支持分页和限制返回的记录数量。
  • Rust 客户端的其他重要功能包括支持副本策略和节流,以及对数据模型类型(如 Exists、OrderedMap 和 UnorderedMap)的高级表示。
  • 以下代码片段简洁地展示了如何在主索引上运行查询以检索满足给定条件的记录:

    let client =...
    let mut policy = ScanPolicy::default();
    policy.include_bin_data = false;
    match client.scan(&policy, "test", "demo", None) {
      Ok(records) => {
          // 处理记录
      },
      Err(err) => println!("Error fetching record: {}", err),
    }
  • 同样,以下是通过将记录与键关联来创建记录的方法:

    let key = as_key!("test", "myset", "mykey");
    let bin = as_bin!("mybin", "myvalue");
    match client.put(&policy, &key, &vec![&bin]) {
      Ok(()) => println!("Record written"),
      Err(err) => println!("Error writing record: {}", err),
    }
  • Aerospike 的 Rust 客户端路线图上有几个强大的功能,包括支持分区查询、分布式 ACID 事务、强一致性和完全 TLS 支持。
  • Aerospike 提供了其他几个客户端库,以帮助开发人员以惯用的方式使用其数据库构建应用程序,包括 Node.js、Java、Python、C 等。
阅读 12
0 条评论