feat:添加Redis缓存服务

- 实现Redis服务接口和抽象层
- 提供真实Redis服务实现 (RealRedisService)
- 提供文件模拟Redis服务 (FileRedisService) 用于开发测试
- 支持基本的Redis操作:get、set、del、exists、ttl
- 添加Redis模块配置和依赖注入
This commit is contained in:
moyin
2025-12-17 20:20:18 +08:00
parent e58cc57769
commit de30649826
5 changed files with 618 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { FileRedisService } from './file-redis.service';
import { RealRedisService } from './real-redis.service';
import { IRedisService } from './redis.interface';
/**
* Redis模块
* 根据环境变量自动选择文件存储或真实Redis服务
*/
@Module({
imports: [ConfigModule],
providers: [
{
provide: 'REDIS_SERVICE',
useFactory: (configService: ConfigService): IRedisService => {
const useFileRedis = configService.get<string>('USE_FILE_REDIS', 'true') === 'true';
const nodeEnv = configService.get<string>('NODE_ENV', 'development');
// 在开发环境或明确配置使用文件Redis时使用文件存储
if (nodeEnv === 'development' || useFileRedis) {
return new FileRedisService();
} else {
return new RealRedisService(configService);
}
},
inject: [ConfigService],
},
FileRedisService,
RealRedisService,
],
exports: ['REDIS_SERVICE'],
})
export class RedisModule {}