feat:添加Redis缓存服务
- 实现Redis服务接口和抽象层 - 提供真实Redis服务实现 (RealRedisService) - 提供文件模拟Redis服务 (FileRedisService) 用于开发测试 - 支持基本的Redis操作:get、set、del、exists、ttl - 添加Redis模块配置和依赖注入
This commit is contained in:
34
src/core/redis/redis.module.ts
Normal file
34
src/core/redis/redis.module.ts
Normal 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 {}
|
||||
Reference in New Issue
Block a user