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

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
Caché

@nocobase/cli

CLI de NocoBase
Variables de Entorno Globales

@nocobase/client

Aplicación
Plugin

@nocobase/database

Colección
Campo

interfaces

BaseInterface
Operadores de Filtro

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Repositorio

shared

create-options
destroy-options
find-one
Estado vacío
transaction
update-options

@nocobase/data-source-manager

DataSourceManager
DataSource (abstracta)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Gestor de Fuentes de Datos
Contexto del Flujo
FlowEngine
FlowModel
Recurso de Flujo de Trabajo

@nocobase/logger

Logger

@nocobase/server

AppCommand
Aplicación
AuditManager
Contexto
Migración
Plugin

@nocobase/sdk

Auth
Storage
Previous PageBaseAuth
Next PageCaché
Aviso de traducción por IA

Esta documentación ha sido traducida automáticamente por IA.

#CacheManager

#Resumen

CacheManager se basa en node-cache-manager y proporciona funcionalidades de gestión de módulos de caché para NocoBase. Los tipos de caché integrados son:

  • memory - un lru-cache proporcionado por defecto por node-cache-manager
  • redis - con soporte de node-cache-manager-redis-yet

Puede registrar y extender más tipos a través de la API.

#Conceptos clave

  • Store: Define un método de almacenamiento en caché, que incluye un método de fábrica para crear cachés y otras configuraciones relacionadas. Cada método de caché tiene un identificador único que se proporciona durante el registro. Los identificadores únicos para los dos métodos de caché integrados son memory y redis.

  • Método de fábrica de Store: Un método proporcionado por node-cache-manager y sus paquetes de extensión relacionados para crear cachés. Por ejemplo, 'memory' (proporcionado por defecto por node-cache-manager) y redisStore (proporcionado por node-cache-manager-redis-yet). Este método corresponde al primer parámetro del método caching de node-cache-manager.

  • Cache: Una clase encapsulada por NocoBase que proporciona métodos para utilizar la caché. Al usar la caché, usted opera sobre una instancia de Cache. Cada instancia de Cache tiene un identificador único que puede utilizarse como espacio de nombres para distinguir diferentes módulos.

#Métodos de clase

#constructor()

#Firma

  • constructor(options?: CacheManagerOptions)

#Tipos

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

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

#Detalles

#CacheManagerOptions
PropiedadTipoDescripción
defaultStorestringEl identificador único para el tipo de caché predeterminado.
storesRecord<string, StoreOptions>Registra los tipos de caché. La clave es el identificador único para el tipo de caché, y el valor es un objeto que contiene el método de registro y la configuración global para el tipo de caché.
En node-cache-manager, el método para crear una caché es await caching(store, config). El objeto que debe proporcionar aquí es StoreOptions.
#StoreOptions
PropiedadTipoDescripción
storememory | FactoryStore<Store, any>El método de fábrica del store, que corresponde al primer parámetro de caching.
close(store: Store) => Promise<void>Opcional. Si se trata de un middleware como Redis que requiere una conexión, debe proporcionar un método de callback para cerrar la conexión. El parámetro de entrada es el objeto devuelto por el método de fábrica del store.
[key: string]anyOtras configuraciones globales del store, que corresponden al segundo parámetro de caching.

#options predeterminadas

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

const defaultOptions: CacheManagerOptions = {
  defaultStore: 'memory',
  stores: {
    memory: {
      store: 'memory',
      // Configuración global
      max: 2000,
    },
    redis: {
      store: redisStore,
      close: async (redis: RedisStore) => {
        await redis.client.quit();
      },
    },
  },
};

El parámetro options se fusionará con las opciones predeterminadas. Las propiedades ya presentes en las opciones predeterminadas pueden omitirse. Por ejemplo:

const cacheManager = new CacheManager({
  stores: {
    defaultStore: 'redis',
    redis: {
      // redisStore ya está proporcionado en las opciones predeterminadas, solo necesita proporcionar la configuración de redisStore.
      url: 'redis://localhost:6379',
    },
  },
});

#registerStore()

Registra un nuevo método de almacenamiento en caché. Por ejemplo:

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

cacheManager.registerStore({
  // Identificador único para el store
  name: 'redis',
  // Método de fábrica para crear el store
  store: redisStore,
  // Cierra la conexión del store
  close: async (redis: RedisStore) => {
    await redis.client.quit();
  },
  // Configuración global
  url: 'xxx',
});

#Firma

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

#createCache()

Crea una caché. Por ejemplo:

await cacheManager.createCache({
  name: 'default', // Identificador único para la caché
  store: 'memory', // Identificador único para el store
  prefix: 'mycache', // Opcional, añade automáticamente el prefijo 'mycache:' a las claves de caché
  // Otras configuraciones del store, las configuraciones personalizadas se fusionarán con la configuración global del store
  max: 2000,
});

#Firma

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

#Detalles

#options
PropiedadTipoDescripción
namestringIdentificador único para la caché.
storestringIdentificador único para el store.
prefixstringOpcional, prefijo para las claves de caché.
[key: string]anyOtros elementos de configuración personalizada del store.

Si se omite store, se utilizará defaultStore. En este caso, el método de almacenamiento en caché cambiará según el método de caché predeterminado del sistema.

Cuando no hay configuraciones personalizadas, se devuelve el espacio de caché predeterminado creado por la configuración global y compartido por el método de caché actual. Se recomienda añadir un prefix para evitar conflictos de claves.

// Utiliza la caché predeterminada con la configuración global
await cacheManager.createCache({ name: 'default', prefix: 'mycache' });
#Cache

Consulte Cache

#getCache()

Obtiene la caché correspondiente.

cacheManager.getCache('default');

#Firma

  • getCache(name: string): Cache

#flushAll()

Reinicia todas las cachés.

await cacheManager.flushAll();

#close()

Cierra todas las conexiones de middleware de caché.

await cacheManager.close();