1个不稳定版本
0.1.1 | 2021年5月29日 |
---|---|
0.1.0 |
|
0.0.1 |
|
#188 in 缓存
54 每月下载量
用于 hitbox-actix
65KB
1.5K SLoC
hitbox
Hitbox是一个支持多个后端并适合分布式和单机应用的异步缓存框架。
框架集成
- Actix
- Actix-Web
功能
- 自动缓存键生成。
- 多个缓存后端实现。
- 陈旧缓存机制。
- 用于防止狗群效应的缓存锁。
- 分布式缓存锁。
- 开箱即用的详细指标。
后端实现
- Redis
- 内存后端
功能标志
- 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