一篇文章学会如何在 NestJS 中使用 Redis 并基于 Redis 实现接口访问限频率
import { Module, MiddlewareConsumer, RequestMethod } from '@nestjs/common';
import { RedisModule } from 'nestjs-redis';
import * as Redis from 'ioredis';
import { RateLimiterMiddleware } from './rate-limiter.middleware';
@Module({
imports: [
RedisModule.forRoot({
config: {
host: 'localhost',
port: 6379,
},
// 如果需要,可以提供一个创建客户端的工厂方法
// useFactory: (): Redis.Redis => {}
}),
],
})
export class AppModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply(RateLimiterMiddleware)
.forRoutes({ path: '*', method: RequestMethod.ALL }); // 应用于所有路由
}
}
在这个例子中,我们首先导入了必要的NestJS模块和ioredis
库,然后配置了RedisModule,并将其应用于整个应用程序的所有路由。我们还定义了一个RateLimiterMiddleware
中间件,用于限制接口的访问频率,并在AppModule
中配置了中间件的使用。这个例子展示了如何在NestJS中使用Redis来增强应用程序的安全性和性能。
评论已关闭