nestjs使用缓存
时间: 2024-07-24 09:01:38 浏览: 119
在 NestJS 中,利用缓存可以提高应用程序的性能,减少对数据库或其他资源的频繁访问。NestJS 提供了多种内置的方式来管理缓存:
1. **@nestjs-cache**:这是一个第三方模块,可以轻松集成 Redis、Memcached 等缓存系统。它支持内存、会话存储和分布式缓存。例如,你可以使用 `@Cacheable()` 装饰器来标记一个函数结果需要被缓存。
```typescript
import { Get, UseCache } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
from cacheModule import CacheService;
@Get('/items')
@UseCache({ key: 'item:id', ttl: 60 * 60 }) // 设置缓存有效期为1小时
async getItem(@InjectRepository(ItemsRepository) itemsRepository: ItemsRepository, id: number): Promise<Item> {
return await itemsRepository.findOne(id);
}
```
2. **NestJS 内置**:NestJS 本身也提供了一些基本缓存机制,如 `@ControllerCache` 和 `@Interceptor` 注解用于控制控制器级别和中间件级别的缓存策略。
3. **自定义缓存策略**:如果你的应用场景复杂,还可以编写自己的服务层缓存逻辑,比如使用 `Koa ctx.cache` 或其他库实现。
阅读全文