查看 Netsjs 文档,我可以看到一般方法是利用 CacheInterceptor 进行控制器级缓存,
我希望实现的是服务/数据库级缓存 - 用例主要用于其他服务所需的静态数据库数据,是否有办法扩展提供的缓存模块以在服务内使用?
我也在寻找一种方法来做到这一点。
现在,我通过在服务中注入 cacheManager 实例并直接使用它,根据一些研究使其工作。
import { CACHE_MANAGER, Inject, Injectable } from '@nestjs/common';
@Injectable()
export class MyService {
constructor(
@Inject(CACHE_MANAGER) protected readonly cacheManager
) {}
public async myMethod() {
const cachedData = await this.cacheManager.get(cacheKey);
if (cachedData) return cachedData;
const data = ''; // Do normal stuff here
this.cacheManager.set(cacheKey, data);
return data;
}
}
但我仍在寻找一种方法来创建包含缓存逻辑的缓存装饰器,并将使用函数参数作为缓存键
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)