logologo
시작
가이드
개발
플러그인
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
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();