#cache #actix #sled #actix-actor

actix-sled-cache

基于 Sled 和 Actix 构建的缓存系统

2 个不稳定版本

0.2.0 2019 年 10 月 16 日
0.1.0 2019 年 9 月 17 日

#294缓存

29 每月下载量
用于 actix-sled-session

自定义许可证

15KB
207

Sled Actix Cache

基于 Sled 和 Actix 构建的缓存系统

该项目旨在允许在基于 actix 的系统中轻松实现缓存。具体来说,它被开发出来以在媒体缓存中存储图像文件和元数据,用于简单的 Web 应用程序。

示例

use actix::{Actor, System};
use actix_sled_cache::bincode::Cache;
use sled_extensions::Config;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let sys = System::new("cache-example");
    let db = Config::default().temporary(true).open()?;

    let mut cache_builder = Cache::builder(db, "simple-cache");
    cache_builder
        .as_mut()
        .extend_on_update()
        .extend_on_fetch()
        .expiration_length(chrono::Duration::seconds(1));

    let cache: Cache<usize> = cache_builder
        .frequency(std::time::Duration::from_secs(1))
        .build()?;

    // Clone the tree out of the cache before starting the cache actor
    let tree = cache.tree();

    cache.start();

    // If un-accessed, this record will be deleted after one second
    tree.insert("some-key", 5)?;

    sys.run()?;
    Ok(())
}

这里创建的缓存频率为每秒一次,这意味着每秒它会检查过期记录。在许多情况下,频率可以低得多。此缓存还具有 expiration_length 为一秒,这意味着自上次与记录交互以来已过去一秒,它就有资格被删除。

贡献

除非另有说明,否则所有对项目的贡献都将根据本文件许可证部分中列出的例外情况在 CSL 下许可。

许可证

本作品受合作软件许可证的许可。这不是自由软件许可证,但可能被视为“源代码可用许可证”。对于大多数爱好者、自雇开发者、员工拥有公司以及合作社,只要在 CSL 条件下分发此软件,就可以在大多数项目中使用此软件。有关更多信息,请参阅提供的 LICENSE 文件。如果不存在,许可证可以在网上找到 这里。如果您是自由软件项目并希望根据 GNU Affero 通用公共许可证使用此软件,请通过 [email protected] 联系我,我们可以解决此问题。如果您希望在其他许可证下使用此项目,特别是在专有软件中,答案很可能是不行。

依赖项

~11MB
~196K SLoC