返回 AiToEarn
redis.module.ts
根目录 / project / aitoearn-electron / server / src / lib / redis / redis.module.ts
1 /*
2 * @Author: nevin
3 * @Date: 2024-08-30 14:39:05
4 * @LastEditTime: 2024-09-14 19:03:21
5 * @LastEditors: nevin
6 * @Description:
7 */
8 import { Global, Module } from '@nestjs/common';
9 import { ConfigModule, ConfigService } from '@nestjs/config';
10 import { RedisService } from './redis.service';
11 import { REDIS_CLIENT } from './redis.constant';
12 import Redis from 'ioredis';
13 import redisConfig from '../../../config/redis.config';
14
15 @Global()
16 @Module({
17 imports: [ConfigModule.forRoot({ load: [redisConfig] })],
18 providers: [
19 RedisService,
20 {
21 provide: REDIS_CLIENT,
22 useFactory: async (configService: ConfigService) => {
23 const client = new Redis(configService.get('REDIS_CONFIG'));
24 console.log('Redis client connected.');
25 client.on('error', (err) => {
26 console.error('Redis client encountered an error:', err);
27 });
28
29 client.on('end', () => {
30 console.log('Connection to Redis closed.');
31 });
32
33 return client;
34 },
35 inject: [ConfigService],
36 },
37 ],
38 exports: [REDIS_CLIENT, RedisService],
39 })
40 export class RedisModule {}
41
41 lines TYPESCRIPT