https://github.com/kuangshp/nest-api-cache
nest中借用redis实现api接口缓存
https://github.com/kuangshp/nest-api-cache
Last synced: 7 months ago
JSON representation
nest中借用redis实现api接口缓存
- Host: GitHub
- URL: https://github.com/kuangshp/nest-api-cache
- Owner: kuangshp
- Created: 2021-03-31T03:03:12.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-04-25T06:11:15.000Z (over 4 years ago)
- Last Synced: 2025-02-12T10:56:56.349Z (8 months ago)
- Language: TypeScript
- Homepage:
- Size: 149 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 一、关于本包
这个包借助了`redis`的缓存机制,借用`Nestjs`的自定义装饰器,我们在需要走`redis`缓存的接口上加上自定义装饰器,然后在`Nestjs`中的拦截器中对数据进行处理,如果该接口需要走`redis`缓存就会先判断`redis`缓存中是否已经存在数据,如果存在就直接返回,没有`redis`缓存就继续走到控制器,然后对数据库`IO`操作。针对于访问频繁的接口,可以加上这个装饰器,减少数据库`IO`操作,从而提高接口响应速度,在使用本包的前提是要有`redis`。
## 二、使用方式
* 安装依赖包
```properties
npm install nest-api-cache
```* 在`app.module.ts`中导入模块
```typescript
import { NestApiCacheModule} from 'nest-api-cache';
@Module({
imports: [
// 参数可选,第一个参数是redis的连接参数
NestApiCacheModule.forRoot({ redisConfig: {}, redisEXSecond:10}),
]
})
```* 在需要走`redis`的接口上加上自定义装饰器
```typescript
import { NestCacheApi } from 'nest-api-cache';
...
@ApiOperation({
summary: '查询角色列表',
description: '查询角色',
externalDocs: {
url: 'xx?pageSize=10&pageNumber=1&name=x&status=0'
}
})
@ApiCreatedResponse({
type: RoleResDto,
isArray: true,
description: '分页查询角色返回值'
})
@HttpCode(HttpStatus.OK)
// 加上这个自定义装饰器,可以告知拦截器这个接口要走缓存,
// 如果需要设置缓存时间可以手动加入过期时间@NestCacheApi(2 * 60) 设置2分钟
// 不传递过期时间,系统默认以1分钟过期
@NestCacheApi()
@Get()
async roleList(
@Query() roleReqDto: RoleReqDto,
): Promise {
return await this.roleService.roleList(roleReqDto);
}
```