Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Nest.js: cache, cachemodule, in-memory, redis

Объясните, как реализовать кеширование.

Вопрос проверяет понимание кеширования в NestJS, включая использование встроенного модуля кеширования и практические подходы к оптимизации производительности.

Короткий ответ

NestJS предоставляет CacheModule для реализации кеширования. Оно поддерживает разные хранилища (например, in-memory или Redis). Кеширование может быть настроено для хранения результатов методов или HTTP-ответов с использованием декораторов или перехватчиков.

Длинный ответ

1. Установка и настройка:
Установите пакет для кеширования:

npm install --save @nestjs/cache-manager cache-manager

Подключите CacheModule в модуле приложения:

import { Module, CacheModule } from '@nestjs/common';

@Module({
  	imports: [
    		CacheModule.register({
      			ttl: 5, // время жизни в секундах
      			max: 10, // максимальное количество элементов
    		}),
  	],
})
export class AppModule {}

2. Кеширование методом:
Используйте декоратор @Cacheable() для кеширования результатов методов:

import { Injectable } from '@nestjs/common';
import { Cacheable } from '@nestjs/cache-manager';

@Injectable()
export class AppService {
  	@Cacheable()
  	getHello(): string {
    		return 'Hello World!';
 	}
}

3. Кеширование HTTP-ответов:
Используйте CacheInterceptor для кеширования маршрутов:

import { Controller, Get, UseInterceptors } from '@nestjs/common';
import { CacheInterceptor } from '@nestjs/cache-manager';

@Controller()
@UseInterceptors(CacheInterceptor)
export class AppController {
  	@Get()
  	getHello(): string {
    		return 'Hello World!';
  	}
}

4. Дополнительные аспекты:

Подключение Redis:
Для использования Redis установите:

npm install cache-manager-redis-store

Настройте CacheModule с использованием Redis:

import * as redisStore from 'cache-manager-redis-store';

CacheModule.register({
  	store: redisStore,
  	host: 'localhost',
  	port: 6379,
});

Кеширование улучшает производительность, снижает нагрузку на сервер и сокращает время отклика. Используйте встроенные инструменты NestJS для простой интеграции и гибкой настройки.

  • Аватар

    Node.js Guru

    Demetra

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Nest.js

    Nest.js

Ключевые слова

#cache

#cachemodule

#in-memory

#redis

Подпишись на Node.js Developer в телеграм

  • Аватар

    Node.js Guru

    Demetra

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.