logologo
시작
가이드
개발
플러그인
API
홈
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
시작
가이드
개발
플러그인
API
홈
logologo
API 개요

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
캐시

@nocobase/cli

NocoBase CLI
전역 환경 변수

@nocobase/client

애플리케이션
플러그인

@nocobase/database

컬렉션
필드

interfaces

BaseInterface
필터 연산자

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
리포지토리

shared

create-options
destroy-options
find-one
find-options
transaction
update-options

@nocobase/data-source-manager

DataSourceManager
DataSource (추상 클래스)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

데이터 소스 관리자
플로우 컨텍스트
FlowEngine
FlowModel
플로우 리소스

@nocobase/logger

로거

@nocobase/server

AppCommand
애플리케이션
AuditManager
컨텍스트
마이그레이션
플러그인

@nocobase/sdk

Auth
Storage
Previous PageBaseAuth
Next Page캐시
TIP

이 문서는 AI로 번역되었습니다. 부정확한 내용이 있을 경우 영어 버전을 참조하세요

#CacheManager

#개요

CacheManager는 node-cache-manager를 기반으로 NocoBase에 캐시 모듈 관리 기능을 제공합니다. 내장된 캐시 유형은 다음과 같습니다.

  • memory - node-cache-manager에서 기본으로 제공하는 lru-cache
  • redis - node-cache-manager-redis-yet에서 지원하는 기능

더 많은 유형은 API를 통해 확장 및 등록할 수 있습니다.

#개념 설명

  • Store: 캐시 생성 팩토리 메서드와 기타 관련 설정을 포함하여 캐싱 방식을 정의합니다. 각 캐싱 방식은 등록 시 제공되는 고유 식별자를 가집니다. 내장된 두 가지 캐싱 방식에 해당하는 고유 식별자는 memory와 redis입니다.

  • Store 팩토리 메서드: node-cache-manager 및 관련 확장 패키지에서 제공하는 캐시 생성 메서드입니다. 예를 들어, node-cache-manager에서 기본으로 제공하는 'memory'나 node-cache-manager-redis-yet에서 제공하는 redisStore 등이 있습니다. 이는 node-cache-manager의 caching 메서드의 첫 번째 매개변수에 해당합니다.

  • Cache: NocoBase가 캡슐화한 클래스로, 캐시 사용과 관련된 메서드를 제공합니다. 실제로 캐시를 사용할 때는 Cache 인스턴스를 조작하며, 각 Cache 인스턴스는 고유 식별자를 가지고 있어 서로 다른 모듈을 구분하는 네임스페이스로 활용할 수 있습니다.

#클래스 메서드

#constructor()

#시그니처

  • constructor(options?: CacheManagerOptions)

#타입

export type CacheManagerOptions = Partial<{
  defaultStore: string;
  stores: {
    [storeType: string]: StoreOptions;
  };
}>;

type StoreOptions = {
  store?: 'memory' | FactoryStore<Store, any>;
  close?: (store: Store) => Promise<void>;
  // 전역 설정
  [key: string]: any;
};

#상세 정보

#CacheManagerOptions
속성타입설명
defaultStorestring기본 캐시 유형의 고유 식별자
storesRecord<string, StoreOptions>캐시 유형을 등록합니다. 키는 캐시 유형의 고유 식별자이며, 값은 캐시 유형의 등록 메서드와 전역 설정을 포함하는 객체입니다.
node-cache-manager에서 캐시를 생성하는 메서드는 await caching(store, config)입니다. 여기서 제공해야 하는 객체는 StoreOptions입니다.
#StoreOptions
속성타입설명
storememory | FactoryStore<Store, any>store 팩토리 메서드로, caching의 첫 번째 매개변수에 해당합니다.
close(store: Store) => Promise<void>선택 사항입니다. Redis와 같이 연결이 필요한 미들웨어의 경우, 연결을 닫는 콜백 메서드를 제공해야 합니다. 입력 매개변수는 store 팩토리 메서드가 반환하는 객체입니다.
[key: string]any기타 store 전역 설정으로, caching의 두 번째 매개변수에 해당합니다.

#기본 options

import { redisStore, RedisStore } from 'cache-manager-redis-yet';

const defaultOptions: CacheManagerOptions = {
  defaultStore: 'memory',
  stores: {
    memory: {
      store: 'memory',
      // 전역 설정
      max: 2000,
    },
    redis: {
      store: redisStore,
      close: async (redis: RedisStore) => {
        await redis.client.quit();
      },
    },
  },
};

options 매개변수는 기본 options와 병합됩니다. 기본 options에 이미 존재하는 속성은 생략할 수 있습니다. 예를 들어:

const cacheManager = new CacheManager({
  stores: {
    defaultStore: 'redis',
    redis: {
      // redisStore는 이미 기본 options에 제공되어 있으므로, redisStore 설정만 제공하면 됩니다.
      url: 'redis://localhost:6379',
    },
  },
});

#registerStore()

새로운 캐싱 방식을 등록합니다. 예를 들어:

import { redisStore } from 'cache-manager-redis-yet';

cacheManager.registerStore({
  // store의 고유 식별자
  name: 'redis',
  // store를 생성하는 팩토리 메서드
  store: redisStore,
  // store 연결 닫기
  close: async (redis: RedisStore) => {
    await redis.client.quit();
  },
  // 전역 설정
  url: 'xxx',
});

#시그니처

  • registerStore(options: { name: string } & StoreOptions)

#createCache()

캐시를 생성합니다. 예를 들어:

await cacheManager.createCache({
  name: 'default', // cache의 고유 식별자
  store: 'memory', // store의 고유 식별자
  prefix: 'mycache', // 캐시 키에 'mycache:' 접두사를 자동으로 추가합니다 (선택 사항).
  // 기타 store 설정, 사용자 정의 설정은 store 전역 설정과 병합됩니다.
  max: 2000,
});

#시그니처

  • createCache(options: { name: string; prefix?: string; store?: string; [key: string]: any }): Promise<Cache>

#상세 정보

#options
속성타입설명
namestringcache의 고유 식별자
storestringstore의 고유 식별자
prefixstring선택 사항, 캐시 키 접두사
[key: string]anystore와 관련된 기타 사용자 정의 설정 항목

store를 생략하면 defaultStore가 사용됩니다. 이 경우 캐싱 방식은 시스템의 기본 캐싱 방식 변경에 따라 달라집니다.

사용자 정의 설정이 없는 경우, 전역 설정으로 생성되고 현재 캐싱 방식이 공유하는 기본 캐시 공간이 반환됩니다. 키 충돌을 피하기 위해 prefix를 추가하는 것을 권장합니다.

// 기본 캐시 사용, 전역 설정 적용
await cacheManager.createCache({ name: 'default', prefix: 'mycache' });
#Cache

Cache를 참조하세요.

#getCache()

해당 캐시를 가져옵니다.

cacheManager.getCache('default');

#시그니처

  • getCache(name: string): Cache

#flushAll()

모든 캐시를 재설정합니다.

await cacheManager.flushAll();

#close()

모든 캐시 미들웨어 연결을 닫습니다.

await cacheManager.close();