1个不稳定版本

0.1.1 2021年5月29日
0.1.0 2021年5月29日
0.0.1 2021年4月28日

#188 in 缓存

Download history 7/week @ 2024-03-14 49/week @ 2024-03-28 35/week @ 2024-04-04 12/week @ 2024-04-11 72/week @ 2024-04-18 45/week @ 2024-04-25 58/week @ 2024-05-02 42/week @ 2024-05-09 28/week @ 2024-05-16 15/week @ 2024-05-23 26/week @ 2024-05-30 30/week @ 2024-06-06 5/week @ 2024-06-13 5/week @ 2024-06-20 8/week @ 2024-06-27

54 每月下载量
用于 hitbox-actix

MIT 许可

65KB
1.5K SLoC

hitbox

Build status Coverage Status

Hitbox是一个支持多个后端并适合分布式和单机应用的异步缓存框架。

框架集成

功能

  • 自动缓存键生成。
  • 多个缓存后端实现。
  • 陈旧缓存机制。
  • 用于防止狗群效应的缓存锁。
  • 分布式缓存锁。
  • 开箱即用的详细指标。

后端实现

功能标志

  • derive - 支持 Cacheable trait derive 宏。
  • metrics - 支持指标。

限制

默认缓存键实现基于 serde_qs crate,并有一些 限制

文档

示例

依赖

[dependencies]
hitbox = "0.1"

代码

注意: 默认缓存键实现基于 serde_qs crate,并有一些 限制

首先,您应该为您的结构体或枚举 derive Cacheable trait

use hitbox::prelude::*;
use serde::{Deserialize, Serialize};

#[derive(Cacheable, Serialize)] // With features=["derive"]
struct Ping {
    id: i32,
}

或手动实现该 trait

use hitbox::{Cacheable, CacheError};
struct Ping { id: i32 }
impl Cacheable for Ping {
    fn cache_key(&self) -> Result<String, CacheError> {
        Ok(format!("{}::{}", self.cache_key_prefix(), self.id))
    }

    fn cache_key_prefix(&self) -> String { "Ping".to_owned() }
}

依赖

~11MB
~194K SLoC