Я использую Redis для кэширования запросов внутри TypeOrm.
но проблема в том, что пакет TypeOrm и Redis открывает отдельное соединение, я просто хочу повторно использовать одно и то же соединение для обоих.
это конфигурация typeorm:
import { TypeOrmModuleOptions } from '@nestjs/typeorm';
import { Constants } from '../utils/Constants';
export const typeOrmConfig: TypeOrmModuleOptions = {
type: Constants.DB_TYPE,
host: Constants.DB_HOST,
port: Constants.DB_PORT,
username: Constants.DB_USER_NAME,
password: Constants.DB_PASSWORD,
database: Constants.DB_NAME,
entities: [ __dirname + '/../**/*.entity.{js,ts}' ],
synchronize: true,
logging: true,
cache: {
type: 'ioredis',
duration: 60000,
options: {
host: 'localhost',
password: 'swapnil',
port: 6379
}
},
extra: {
max: 10,
connectionTimeoutMillis: 2000
}
};
я использую пакет @svtslv/nestjs-ioredis для Redis:
import { Constants } from '../utils/Constants';
export const config = {
host: Constants.REDIS_HOST,
port: parseInt(Constants.REDIS_PORT),
db: parseInt(Constants.REDIS_DB),
password: Constants.REDIS_PASSWORD
};
и с помощью этого пакета я могу получить доступ к Redis внутри моего класса обслуживания, используя:
public constructor(@InjectRedis() private readonly redis: Redis,) {}