dot Redis 8 来了——而且是开源的

了解更多

Redis Enterprise 与 Rust

Rust 是一种快速增长的编程语言,以其超快的性能、线程安全和避免段错误而闻名。Redis Enterprise,内存数据库,提供具有高吞吐量和低延迟的数据访问。这是使用 Rust 构建超快应用程序所需的性能类型。

Redis-rs 库

将您的 Rust 应用程序连接到 Redis Enterprise 数据库非常简单。您可以使用流行的redis crate,它基于redis-rs 库。该库在类型转换方面非常灵活,并提供对 Redis 功能的访问,用于键值访问、发布/订阅、数据结构操作等。此站点包含简单的 Redis 命令、管道、事务和使用发布/订阅进行消息传递的详细文档和代码片段。

Async-redis 库

Async-redis 是一个正在兴起的新客户端库。它使用 Tokio 和 Futures 库来支持对 Redis 的异步调用。此库仅支持 Redis 的单个端点。这与 Redis Enterprise 非常有效,因为 Redis Enterprise 中的服务器端代理提供了一个单一的访问点,并将您的调用路由到集群中的正确分片。访问 async-redis 文档页面以获取更多信息。该库提供三个接口:

  1. 底层 – client::connect 是一个底层接口,非常适合流水线处理。调用者有责任将响应与请求相匹配。
  2. 高级 – client::paired_connect 非常适合一个命令返回一个响应的 Redis 命令。
  3. PUBSUB – client::pubsub_connect 返回一个 Rust future,可用于发布和订阅。

访问 async-redis 文档页面以获取更多信息。

Rust 和 Redis Enterprise 入门

如果您还没有 Redis Enterprise,您可以注册一个免费的云帐户并在所有流行的云平台上免费创建一个新的 Redis Enterprise 数据库。如果您正在使用Redis Enterprise 软件,或者VPC 中的 Redis Enterprise,请按照这些说明创建一个新的数据库。

拥有 Redis Enterprise 数据库后,您可以开始使用 cargo 并使用测试程序测试数据库,如下所示。此示例使用 redis-rs 库。

创建带有 Redis 依赖项的 Cargo.toml

[dependencies]
redis = "0.8.0"

示例测试程序,main.rs
extern crate redis;
use redis::Commands;
fn main(){
    // 打开连接
    let client = redis::Client::open("redis://<user>:<password>@<endpoint>:<port>").unwrap();

    // 设置 key = “Hello World”
    let _: () = client.set(“key”,”Hello World”).unwrap();

    // 获取 key
    let key : String = client.get(“key”).unwrap();


    println!("key: {}", key);
}

如何获取连接到数据库的 URL

如果您连接到 Redis Cloud,请登录到您的Redis Enterprise 帐户,打开数据库实例的仪表板,然后选择“配置”选项卡。从屏幕上复制端点和密码,并从以下语法形成您的 URL:
"redis://<arbitraryuser>:<password>@<endpoint>:<port>"

例如,在上面显示的屏幕截图中,URL 看起来像下面的 URL(这假定“password”作为密码,“u”作为任意用户名)
"redis://u:[email protected]:1111"

如果您在本地计算机上运行开源 Redis 的单个实例,您可以将您的 Rust 应用程序连接到您的 Redis 实例,如下所示
"redis://127.0.0.1:6379"

如何在 Redis Enterprise 中使用 SSL 连接

redis-rs 或 async-redis 本身不支持 SSL 连接。为了增加安全性,您可以使用stunnel来保护您的连接。