5 个版本

0.1.3 2024 年 2 月 14 日
0.1.2 2024 年 2 月 14 日
0.1.1 2024 年 2 月 14 日
0.1.0 2024 年 2 月 14 日
0.0.0 2024 年 2 月 3 日

#1204 in 数据库接口

MIT 许可证

22KB
459

cashier

GitHub license

这是一个键值缓存模块。通过相同的接口为各种数据源提供缓存操作。目前提供的功能包括内存、Redis 和 AWS Dynamo。

功能

  • dynamo: AWS DynamoDB
  • redis: Redis

安装

如果您只想使用 Dynamo 功能,请按照以下方式安装。

[dependencies]
cashier = { version = "0.1.0", features = ["dynamo"] }

如果您想使用所有功能,请使用 "full"。

[dependencies]
cashier = { version = "0.1.0", features = ["full"] }

基本

use cashier::{dynamo, Cashier};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut cashier = dynamo::DynamoCashier::new()
        .table_name("cashier2")
        .config(aws_config::load_from_env().await);

    cashier.connect().unwrap();

    // If the table does not exist, it is automatically created. (Generated in on-demand mode.)
    cashier.create_table_if_not_exists().unwrap();

    // Set new data
    cashier.set("asda2sd", "value").unwrap();

    // Set a cache that expires in 10 seconds
    cashier.set_with_ttl("foo", "bar", 10).unwrap();

    // Get saved cache data.
    let foo = cashier.get("asda2sd").unwrap();
    println!("foo: {:?}", foo);

    // Reset all data.
    cashier.clear().unwrap();

    Ok(())
}

依赖项

~3–16MB
~181K SLoC