6个版本
使用旧的Rust 2015
0.4.0 | 2018年4月27日 |
---|---|
0.3.3 | 2018年4月24日 |
0.2.0 | 2018年4月18日 |
#307 in #redis
在 qui-vive 中使用
10KB
212 行
mouscache-rs
一个用于操作使用Redis或内存缓存的库的小型库
基本用法
use mouscache;
#[derive(Cacheable, Clone, Debug)]
struct YourData {
field1: u16,
field2: String,
}
fn main() {
let data = YourData {
field1: 42,
field2: String::from("Hello, World!"),
};
if let Ok(mut cache) = mouscache::redis("localhost", None) {
let _ = cache.insert("test", data.clone());
let data2: YourData = cache.get("test").unwrap();
assert_eq!(data.field1, data2.field1);
assert_eq!(data.field2, data2.field2);
}
}
自定义缓存内容
Mouscache 现在支持两个自定义属性来自定义条目
expires
属性
指定在条目无效之前的秒数
use mouscache;
#[derive(Cacheable, Clone, Debug)]
#[cache(expires="10")] // each entry of type YouCustomDataType will be valid 10 sec.
struct YouCustomDataType {
yourPrecious_field: String
}
rename
属性
指定将用于插入条目的名称
use mouscache;
#[derive(Cacheable, Clone, Debug)]
#[cache(rename="ThisNameIsCooler")] // each entry of type YouCustomDataType will be inserted with ThisNameIsCooler
struct YouCustomDataType {
yourPrecious_field: String
}
##待办事项
- 添加对具有命名字段的
struct
的支持 - 添加数据属性
- 添加对无名称字段的 support
- 添加对
enum
的支持
lib.rs
:
该crate提供了Mouscache的derive宏。
#[macro_use]
extern crate mouscache_derive;
#[derive(Cacheable)]
struct S;
fn main() {}
请参阅mouscache-rs了解如何设置。
依赖
~2MB
~47K SLoC