使用缓存
缓存(cache),是每个系统必不可少的一个功能,我们可以使用 Yao 自带的缓存功能,来进行一些临时数据存储
缓存可以使用lru,redis,mongo三种方式来实现。
使用LRU缓存
Store 使用缓存,新增文件stores/cache.lru.json
:
应用目录结构:
bash
├── apis # 用于存放接口描述文件
├── models # 用于存放数据模型描述文件
├── db
└── stores #用于存放缓存目录
└── app.json
编写代码cache.lru.json
:
js
{
"name": "LRU Cache",
"description": "LRU缓存",
"type": "lru",
"option": { "size": 102400 }
}
在任意 JS 文件中使用缓存,Set 设置缓存,Get 获取缓存数据,新建scripts/test.js
js
function cacheOperation() {
var cache = new Store('cache');
cache.Set('key', 'for bar .....');
var cache_info = cache.Get('key');
return cache_info;
}
运行 yao run scripts.test.cacheOperation
使用Redis缓存
需要配置redis数据库连接,参考redis连接器 Store 使用缓存,新增文件stores/cache.redis.json
:
编写代码cache.redis.json
:
json
{
"name": "redis Cache",
"description": "redis缓存",
"connector": "redis"
}
使用Mongo缓存
需要配置mongo数据库连接,参考MongoDB连接器
新增文件stores/cache.mongo.json
:
编写代码cache.mongo.json
:
json
{
"name": "redis Cache",
"description": "redis缓存",
"connector": "mongo"
}
Store处理器
Store 的使用主要是通过处理器来处理:
Store 处理器的语法是stores.[StoreID].set
,这里的 storeid 即是上面文件 product.mongo.yao
的 ID 部分。即是product
。
js
//设置值
Process('stores.product.Set', 'key1', 'value');
// redis支持超时配置
Process('stores.product.Set', 'key1', 'value', ttl);
//读取值
Process('stores.product.Get', 'key1');
//删除值
Process('stores.product.Del', 'key1');
//读取并删除
Process('stores.product.GetDel', 'key1');
//检查是否存在
Process('stores.product.Has', 'key1');
//获取长度
Process('stores.product.Len');
//获取所有key
Process('stores.product.Keys');
//清空
Process('stores.product.clear');