#framework #moka #redis #cache #multilevel

baichun-framework-cache

Cache module for Baichun-Rust framework

1 unstable release

0.1.0 Jun 12, 2025

#553 in Caching

Download history 97/week @ 2025-06-07 28/week @ 2025-06-14 1/week @ 2025-06-21 1/week @ 2025-06-28

127 downloads per month

MIT license

56KB
1K SLoC

baichun-framework-cache

Crates.io Documentation License

一个灵活的多级缓存系统,支持本地缓存和 Redis 缓存,是 Baichun-Rust 框架的一部分。

特性

  • 本地缓存(基于 Moka)
  • Redis 缓存(基于 deadpool-redis)
  • 多级缓存
  • 支持异步操作
  • 简单易用的 API
  • 完整的错误处理
  • 可配置的缓存策略

安装

将以下内容添加到你的 Cargo.toml 文件中:

[dependencies]
baichun-framework-cache = "0.1.0"

使用方法

本地缓存

use baichun_framework_cache::{LocalClient, LocalConfig};

let config = LocalConfig {
    max_capacity: 100,
    ttl: 3600,
    tti: 1800,
};
let client = LocalClient::new(config);

Redis 缓存

use baichun_framework_cache::{RedisClient, RedisConfig, RedisMode};

let config = RedisConfig {
    mode: RedisMode::Standalone,
    node: Some(RedisNode {
        host: "localhost".to_string(),
        port: 6379,
    }),
    ..Default::default()
};
let client = RedisClient::new(config).await?;

多级缓存

use baichun_framework_cache::{
    MultilevelClient, MultilevelConfig, CacheMode,
    LocalClient, LocalConfig, RedisClient, RedisConfig,
};

let local_client = LocalClient::new(LocalConfig::default());
let redis_client = RedisClient::new(RedisConfig::default()).await?;

let config = MultilevelConfig {
    mode: CacheMode::Local,
    write_through: true,
    read_through: true,
    ..Default::default()
};

let client = MultilevelClient::new(local_client, redis_client, config);

特性标记

  • local - 启用本地缓存(默认)
  • redis - 启用 Redis 缓存
  • multilevel - 启用多级缓存
  • full - 启用所有功能

许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

Dependencies

~10–40MB
~584K SLoC